我有一个 C++ 控制台应用程序,它通过显示菜单然后对其进行操作来获取用户的输入。当用户输入整数值但当用户输入 ' 时,一切正常 '(我想将其作为“显示帮助”选项处理)代码开始无限循环并且不会阻塞std::cin>>
调用。这是预期的吗?我在这里想念什么?
int queryAction()
{
while(1) {
char selection;
std::cout << "Action: ";
std::cin >> selection;
switch(selection)
{
//Some code that acts on the selection
...
}
}
}
跟进:
如果我std::cin.clear()
在调用cin>>
所有之前添加是好的。我想我的后续问题是为什么在输入上设置的错误状态应该是有效的 ascii 字符?