我是编程新手,我试着用C++编写菜单。
我希望它在while
循环中,当按ESC键时中断,但我希望无需按Enter键即可立即读取字符。
while (breaker != 27)
{
//menu based on switch(breaker)
}
我找到了getch()
函数和<conio.h>
头文件,但人们说不要使用它,因为它只在Windows上工作。
有没有其他方法,我可以得到一个字符,而不按回车,它的多平台/符合编码道德?
我的操作系统是Windows 11,但我想知道在其他系统上工作的解决方案。
1条答案
按热度按时间wfsdck301#
通常不可能使用ISO C++标准库提供的函数来检测是否按下了ESC键。但是,大多数平台提供了特定于平台的API,该API确实提供了此功能。
在Microsoft Windows上,可以使用函数
_getch
、_getche
或ReadConsoleInput
。在Linux上,您可以使用ncurses library。