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