I've been trying to teach myself ncurses and I'm loving it so far. However, I'm trying to write a small little text editor like pico or nano. I've got it set up fairly well so far. I created a function to map the keys. No matter what I do I can not get a response from KEY_ENTER
. Whenever I press it it just goes to the beginning of the currently line that I'm on. I've tried using raw(); and using 13 instead of KEY_ENTER
no luck. All the other keys respond as expected. I would appreciate any advice. I've been staring at this trying to make it work forever. Thanks!
#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
");
break;
case KEY_LEFT:
addstr("Left
");
break;
case KEY_RIGHT:
addstr("Right
");
break;
case KEY_BACKSPACE:
addstr("Backspace
");
break;
case KEY_ENTER:
addstr("You pressed Enter
");
default:
printw ("%u
", ch);
break;
}
}
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…