如何在C中检测使用诅咒按下的箭头键?
在试图通过诅咒(ncurses)从箭头键获取输入时,它不会捕捉到KEY_UP等。我使用了带true参数的键盘函数,但getch仍然返回了一个转义序列。如何在getch()返回的值之间切换,并具体抓取箭头键?标准(类似VT100)终端在按下箭头键时发送一系列字符。您只需跟踪这些按钮是否按顺序按下即可。以下是需要注意的字符:如何在C中检测使用诅咒按下的箭头键?,c,input,key,ncurses,curses,C,Input,Key,Ncurses,Curses,在试图通过诅咒(ncurses)从箭头键获取输入时,它不会捕捉到KEY_UP等。我使用了带true参数的键盘函数,但getch仍然返回了一个转义序列。如何在getch()返回的值之间切换,并具体抓取箭头键?标准(类似VT100)终端在按下箭头键时发送一系列字符。您只需跟踪这些按钮是否按顺序按下即可。以下是需要注意的字符: Down Arrow 0x1B 0x5B 0x42 Left Arrow 0x1B 0x5B 0x44 Right Arrow 0x1B 0x5B 0x43 Up Arro
Down Arrow 0x1B 0x5B 0x42
Left Arrow 0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow 0x1B 0x5B 0x41
我将
getch()
调用存储为char,而它们应该是int。开关后工作正常 我在Mac OS X上发现了相同的问题。但通过添加以下内容解决了此问题:
keypad(stdscr, TRUE);
是否有转义码可以使用ctrl键作为组合键或序列输入?无需;您可以直接键入它们。0x1B=esc,0x5B=[,0x41-0x44=A-D。在终端中键入esc[D,光标向左移动。这种方法几乎完全违背了使用curses库的全部目的:-)