【发布时间】:2013-10-16 13:01:21
【问题描述】:
我需要让我的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 按钮时,它什么也没有发生。为什么?
如何让它发挥作用?
【问题讨论】:
-
stackoverflow.com/questions/14214753/… 可能重复?看看那个。
-
是的,我已经看到了这个问题,并尝试使用其中的第一个答案,但它不起作用。
-
ESC 可能会被您的终端抓取,因此它永远不会出现在标准输入中。您可能必须设置一些终端设置才能获得这些按键 - 使用一些 TUI 库(如 CURSES)可能会更好地为您处理这些东西。