我正在尝试使用 ESC 来逃避使用 getch() 的程序。我创建了一个小程序来演示我的问题。
#include <ncurses.h>
int main(void) {
int key = 0;
initscr();
noecho();
keypad(stdscr, TRUE);
do {
key = getch();
clear();
mvprintw(0, 0, "Key = %d\n", key);
refresh();
} while (key != 27);
clear();
refresh();
endwin();
return 0;
}
我试图允许用户使用箭头键或键盘(以更方便者为准)
问题出在小键盘上(numlock 是否打开)。当我编译并运行程序并尝试在这个简单的测试中使用小键盘键时,它会在我触摸小键盘键时立即退出。如果我删除 while (key != 27) (esc 为 27) 条件,它会读取键并显示它们的数字。为什么当小键盘键注册为时退出循环
ENTER 343
UP 120
DOWN 114
LEFT 116
RIGHT 118
任何帮助深表感谢!