【发布时间】:2014-09-04 04:30:55
【问题描述】:
我有一个接受用户输入的小型控制台应用程序,并且我有以下循环不断询问用户输入,直到他们(a)输入他们的姓名并按 enter 或(b)按退出键。出于某种原因,当他们按下转义键时,他们必须按下回车键,此时只有循环结束,控制台窗口仍然保持打开状态,我错过了什么?代码如下...
while (input.empty()) {
cout << "Enter Something";
getline(cin, input);
if (GetAsyncKeyState(VK_ESCAPE))
{
exit(EXIT_SUCCESS); // this should just close the console entirely, right?
}
}
【问题讨论】:
-
getline块等待输入。如果要异步处理输入,则需要使用不同的方法。 -
如果我没记错的话
std::getline()会在等待输入时阻塞,所以GetAsynKeyState()在读取输入时永远不会运行。
标签: c++