诅咒得到箭头键

时间:2009-07-25 18:18:29

标签: c input key ncurses curses

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

3 个答案:

答案 0 :(得分:13)

我将getch()调用存储为char,因为它们应该是int的。切换后工作完美。

答案 1 :(得分:13)

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

keypad(stdscr, TRUE);

答案 2 :(得分:7)

标准(VT100类)终端在按下箭头键时发送一系列字符。您只需要跟踪它们是否按顺序按下。以下是值得关注的字符:

Down Arrow  0x1B 0x5B 0x42
Left Arrow  0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow    0x1B 0x5B 0x41