【发布时间】:2014-08-24 22:13:18
【问题描述】:
我正在尝试编写模拟控制台的代码。第一次运行正常,但从那里开始,字符串神奇地以空格开头,导致比较失败。在窗口中绘制时会出现空白,但如果写入系统控制台则不会出现。
strContent 存储正在显示的所有内容,而 strCurrLine 逐行保存用户输入。
strContent += "\n";
std::cout << strCurrLine << "!" << std::endl;
if (strCurrLine == "hello")
{
strContent += "world";
}
else
{
strContent += "Err: Command is not recognized";
}
strContent += "\n";
strCurrLine.clear();
void console::insertChar(char newChar)
{
if (newChar == 8) // if char is backspace
{
if (!strCurrLine.empty()) // before deleting, make sure string isnt empty
{
strContent.pop_back(); // delete last char
strCurrLine.pop_back(); // ...
}
}
else
{
strContent += newChar; // add the char to displayed string
strCurrLine += newChar; // add the char to parsing string
}
}
【问题讨论】:
-
什么字符串以空格开头?这个字符串是从哪里来的?
-
@BenVoigt strCurrLine 保存用户输入
-
你读到
strCurrLine的情况如何?请显示更多代码。 -
@JonathanPotter 添加了更多代码
-
@chris:但那样他就无法炫耀他的 ASCII 流利程度了。
标签: c++ string string-comparison