【发布时间】:2016-09-20 14:58:48
【问题描述】:
我知道有std::cin,但这需要用户输入一个字符串,然后按ENTER。有没有一种方法可以简单地获取按下的下一个键而无需按 ENTER 确认
【问题讨论】:
标签: c++ input console keyboard
我知道有std::cin,但这需要用户输入一个字符串,然后按ENTER。有没有一种方法可以简单地获取按下的下一个键而无需按 ENTER 确认
【问题讨论】:
标签: c++ input console keyboard
您要查找的内容与操作控制台有关,并且与操作系统相关。如果您使用的是基于 UNIX 的操作系统,请查看 curses library,而在 Windows 中,<conio.h> 中有 getch() 和 kbhit() 函数。
【讨论】:
看起来most upvoted answer 有点过时了。
ncurses 库(基于提到的curses library)是一个可移植的实现,可用于基于 unix 和 linux 的操作系统、windows 等。
它支持多种终端接口。
【讨论】:
你可以使用
#include <conio.h>
然后用这种情况捕获字符
char c;
if (_kbhit())
{
c = getch();
switch(c)
{
case ‘\0H’ :
cout << "up arrow key!" << endl;
break;
}
}
注意:我没试过……记得把整个东西放到一个“while(true)”中去测试。
【讨论】: