我在 google/stackoverflow 上都看到过类似的帖子。但是,我找不到与我的场景足够接近的方案,而且我对 C/C++ 的了解也不够好,无法将其他建议移植到我的方法中。也许这本身就是一个标志......
无论如何,这是我的代码:
while (true)
{
print("\nSend message, enter command, or \"9\" for help.\n");
if (cin >> input)
{
if (input == TERMINAL_HELP)
{
//Some help code.
}
else if (input == TERMINAL_EXIT)
{
//Some exit code.
}
else if (input < 4 && input >= 0)
{
// Some processing code.
}
else
{
print("Please enter a valid message.");
}
}
else
{
print("Please enter a valid message.");
}
}
捕获对于范围 [0-4] 之外的单个字符或整数工作正常。但是当我把一根绳子放进去时,它变得很奇怪。它不断地循环通过自己。但是,在第一次之后,这应该是不可能的,因为我没有按 Enter。它继续进行,就好像它正在无限接收一个空白。
如果您有任何建议或可以指出解决我的问题的方向,我将不胜感激!谢谢!
笔记:
我试图遵循这一点,它在一定程度上奏效了。(我从这个链接的 if 语句想法中得到了 cin >> 输入......)但是阻止字符串使程序奇怪地循环是行不通的。