我需要让我的 while
循环工作,直到按下键盘上的 ESC 按钮。
char choose = NULL;
while( choose != 27)
{
cout << "Choose (s), (e) or (n): ";
cin.ignore();
choose = cin.get();
switch(choose){
case 's': {SortRoutesByStartPoint(routeList, n); ShowRoutes(routeList, n, "Sorted list (s):"); break;}
case 'e': {SortRoutesByEndPoint(routeList, n); ShowRoutes(routeList, n, "Sorted list (e):"); break;}
case 'n': {SortRoutesByNumber(routeList, n); ShowRoutes(routeList, n, "Sorted list (n):"); break;}
default: {cout << "Not found\n\n"; break;}
}
}
但是当我按下 ESC 按钮时,它什么也没发生。为什么?
如何让它发挥作用?
最佳答案
简单的答案是你不能,至少不可靠, 使用标准流。如果你从输入 一个终端,你得到操作系统给你的东西。一般来说,它 在按下回车之前不会给你任何东西,并且 删除了很多字符以进行行编辑和其他操作 在那之前; ESC 是其中的一个明显变化 字符。
当你想一个字符一个字符地阅读时(你显然 做),你需要一些第三方库,比如 curses。或者你会有 自己编写大量系统相关代码。
关于c++ - 在 C++ 中从 cin 按下 ESC 按钮之前如何读取符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404138/