我一直在尝试自学ncurses,到目前为止我非常喜欢它。然而,我正在尝试编写一个类似pico或nano的小型文本编辑器。到目前为止,我已经设置得相当不错了。我创建了一个函数来映射按键。无论我做什么,我都无法从KEY_ENTER获得响应。每当我按下它时,它只会跳到我当前所在行的开头。我尝试使用raw();和使用13代替KEY_ENTER,但没有成功。其他所有按键都按预期响应。我会感激任何建议。我一直盯着这个问题,试图让它工作,但一直没有成功。谢谢!
#include <stdlib.h>
#include <ncurses.h>
// gcc keymaps.c -lncurses -o keymaps
int main(){
int ch;
initscr();
cbreak();
noecho();
keypad(stdscr,TRUE);
while (ch = getch()) {
switch(ch){
case KEY_UP:
addstr("Up\n");
break;
case KEY_LEFT:
addstr("Left\n");
break;
case KEY_RIGHT:
addstr("Right\n");
break;
case KEY_BACKSPACE:
addstr("Backspace\n");
break;
case KEY_ENTER:
addstr("You pressed Enter\n");
default:
printw ("%u\n", ch);
break;
}
}
}