不使用回车获取单个按键值
C++软件在终端的每一次输入都以回车键作为结束,但是有些场景,我们希望每一个输入按键都能及时转换成对应的功能。
例如,在一个小游戏中,我希望WSAD的按键可以转换成上下左右的执行命令。我不希望看到这些按键在终端中输出出来,并且输入立即执行,不需要按回车按键。
可以利用stty来实现该功能。
stty [ -a ] [ -g ] [ Options ] stty(set tty)命令用于显示和修改当前注册的终端的属性。
UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。
在stty中相应选项前冠以负号(-),该选项被清除;如果无负号,该选项被设置。
在Linux(Unix)系统上,可以使用下面的方式获取一个按钮。
1 |
|
执行上面的函数,返回一个int类型的值,通过键盘按键与 ASCII 字符集对照表就可以知道对应的按键。