如何在不清除屏幕的情况下使用来自curses的getch?

我正在学习用C语言编程,并且希望能够在我的代码运行时能够在终端输入字符而不按返回.我的程序工作,但是当我调用initscr()时,屏幕被清除 – 甚至在调用filter()之后.过滤器的文档建议它应该禁用清除 – 但对我来说情况并非如此.

#include <stdio.h>
#include <curses.h>
#include <term.h>

int main(void) {

    int ch;

    filter();
    initscr();
    cbreak();
    noecho();
    keypad(stdscr, TRUE);

    while((ch = getch()) != EOF);

    endwin();

    return 0;
}

为什么上面的代码仍然清晰的屏幕,以及可以做些什么来解决它?

如果有帮助,我正在使用Debian Lenny(稳定版)和gnome-terminal.

最佳答案
使用newterm()而不是initscr(),你应该没问题.如果你遵循这个建议,不要忘记delscreen().

转载注明原文:如何在不清除屏幕的情况下使用来自curses的getch? - 代码日志