我正在编写一个使用getch()扫描箭头键的程序。到目前为止我的代码是:
switch(getch()) {
case 65: // key up
break;
case 66: // key down
break;
case 67: // key right
break;
case 68: // key left
break;
}问题是,当我按下'A'、'B'、'C'或'D'时,代码也会执行,因为65是'A'等的十进制代码。
有没有办法在不打电话给别人的情况下检查箭头键?
谢谢!
发布于 2015-12-14 08:12:47
keypad将允许用户终端的键盘允许将功能键解释为单个值(即,无转义序列)。
如手册页中所述:
键盘选项启用用户终端的键盘。如果启用(bf为TRUE),用户可以按下功能键(如箭头键),wgetch将返回表示该功能键的单个值,就像在KEY_LEFT中一样。如果禁用(bf为FALSE),curses不会特殊对待功能键,程序必须自己解释转义序列。如果终端中的小键盘可以打开(发送)和关闭(在本地工作),则打开此选项会在调用wgetch时打开终端小键盘。键盘的默认值为false。
https://stackoverflow.com/questions/10463201
复制相似问题