我正在试着做一个简单的程序来检测向上键。这是我的c代码:

#include <stdio.h>
#include <ncurses.h>

int main() {

    initscr();
    noecho();

    printw("hello\n");
    refresh();

    int ch = getch();
    if (ch == KEY_UP) {
        printw("up!\n");
        refresh();
    }

    getch();
    endwin();
    return 0;
}

当我编译和运行程序时,它不起作用。当我按下键,它就退出了。
提前谢谢。

最佳答案

您应该调用keypad来告诉curses解释特殊键:

keypad(stdscr, TRUE);

initscr()之后。没有这个,你的程序将读取(分别)escape和A。
进一步阅读:
Initialization(课程手册)
keypad(3)

10-08 11:29