诅咒得到箭头键

17 c curses key input ncurses

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

小智 14

getch()当他们应该是int时,我将调用存储为char.切换后工作完美.


小智 14

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

keypad(stdscr, TRUE);
Run Code Online (Sandbox Code Playgroud)

  • 但是,OP表示这对他不起作用. (4认同)

Rya*_*yne 7

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

Down Arrow  0x1B 0x5B 0x42
Left Arrow  0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow    0x1B 0x5B 0x41
Run Code Online (Sandbox Code Playgroud)

  • 这种方法几乎完全违背了首先使用curses库的整个目的:-) (13认同)