【发布时间】:2010-11-14 00:53:19
【问题描述】:
在尝试通过 curses (ncurses) 从箭头键获取输入时,它不会捕获为 KEY_UP 等。我使用了带有 true 参数的键盘功能,但 getch 仍然返回了转义序列。如何切换 getch() 返回的值并专门抓取箭头键?
【问题讨论】:
标签: c input key ncurses curses
在尝试通过 curses (ncurses) 从箭头键获取输入时,它不会捕获为 KEY_UP 等。我使用了带有 true 参数的键盘功能,但 getch 仍然返回了转义序列。如何切换 getch() 返回的值并专门抓取箭头键?
【问题讨论】:
标签: c input key ncurses curses
我将getch() 调用存储为char,而它们应该是int。切换后完美运行。
【讨论】:
我在 Mac OS X 上发现了同样的问题。但通过添加以下内容已解决:
keypad(stdscr, TRUE);
【讨论】:
当按下箭头键时,标准(VT100 类)终端会发送一系列字符。您只需要跟踪这些是否按顺序按下。以下是要注意的字符:
Down Arrow 0x1B 0x5B 0x42
Left Arrow 0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow 0x1B 0x5B 0x41
【讨论】: