我有一个程序,其中有一个看起来像这样的代码:
int Element[15];
cout << "Enter name/symbol of the Element: ";
cin >> Element;
我希望程序在按下'esc'键后立即退出。此外,用户不必在按下'esc'键后按'enter'键。那怎么办?
答案 0 :(得分:1)
在Windows中,您可以使用Windows API执行此操作。 GetAsyncKeyState(VK_ESCAPE)可帮助您检查是否按下了Escape。你可以尝试这样的事情:
#include <windows.h>
#include <iostream>
using namespace std;
int main() {
int Element[15];
HANDLE h;
do {
h = GetStdHandle(STD_INPUT_HANDLE);
if(WaitForSingleObject(h, 0) == WAIT_OBJECT_0) {
cout << "Enter name/symbol of the Element: ";
cin >> Element;
}
} while(GetAsyncKeyState(VK_ESCAPE)==0);
return 0;
}
我遇到了同样的问题,并以上述方式解决了这个问题。这个问题给了我很多帮助(处理的想法来自公认的答案):C++ how do I terminate my programm using ESC button。该问题的另一个解决方案也在该链接的问题答案中提供。
检测Esc键的方式也应该有效(但是,我没有正确测试):
#include <iostream>
#include <conio.h>
#include <ctype.h>
using namespace std;
int main() {
int c = _getcha();
while(c != 27) {
// do stuff
c = _getcha();
}
return 0;
}