在尝试通过curses(ncurses)获取箭头键输入时,它不会被捕获为KEY_UP等。我使用了带有true参数的keypad功能,但getch仍然返回了一个转义序列。如何穿过getch()返回的值,并特别抓取箭头键?
我在Mac OS X上遇到了相同的问题。但是通过添加以下内容解决了这个问题:
keypad(stdscr, TRUE);
getch
存储为 int
对我很有效。 - bpisano我在存储getch()
调用时使用的是char,而实际上应该是int。在更改后完美运行。
标准(类似VT100)终端在按下箭头键时发送一系列字符。您只需跟踪这些字符是否按顺序按下即可。以下是要注意的字符:
Down Arrow 0x1B 0x5B 0x42
Left Arrow 0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow 0x1B 0x5B 0x41