19

在尝试通过 curses (ncurses) 从箭头键获取输入时,它不会捕获为 KEY_UP 等。我使用了带有 true 参数的键盘函数,但 getch 仍然返回了一个转义序列。如何切换 getch() 返回的值并专门抓住箭头键?

4

3 回答 3

22

我在 Mac OS X 上发现了同样的问题。但通过添加以下内容解决了这个问题:

keypad(stdscr, TRUE);
于 2009-10-18T22:09:18.540 回答
19

getch()当它们应该是int时,我将调用存储为char。切换后完美运行。

于 2009-07-25T19:16:16.260 回答
8

按下箭头键时,标准(类似 VT100)终端会发送一系列字符。您只需要跟踪这些是否按顺序按下。以下是要注意的字符:

Down Arrow  0x1B 0x5B 0x42
Left Arrow  0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow    0x1B 0x5B 0x41
于 2009-07-25T18:25:40.043 回答