gpt4 book ai didi

c++ - 在 C++ 中从 cin 按下 ESC 按钮之前如何读取符号

转载 作者:行者123 更新时间:2023-11-28 07:21:26 25 4
gpt4 key购买 nike

我需要让我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com