printw()和mvwprintw()不打印

时间:2019-02-14 07:06:58

标签: c ncurses

我正在尝试通过在每一行中打印一个字符串来同时测试printw和mvwprintw。但是,它们不打印任何内容。

这是终端上的输出:

gcc -c -g *.c
gcc *.o -o main.exe -lncurses
DBOJANTC-M-KDD5:ncursestest user22$ main.exe
DBOJANTC-M-KDD5:ncursestest user22$ 

如何使这些功能在屏幕或窗口上打印?

    int main() {

        char stuff[25] = "stuffstuff\n";
        int rows = 7;

        WINDOW* win;
        //int delwin(WINDOW *win);

        //printf("dddd\n");

        initscr();
        raw();
        noecho();
        printw("Try resizing your window(if possible) and then run this program again");
        win = newwin(rows, 80,  0, 0);


        for(int i = 0; i < rows; i++){

            mvwprintw(win, i, 0,"%s", stuff);

            wrefresh(win);
        }

    endwin();


    return 0;
}

1 个答案:

答案 0 :(得分:1)

printwmvwprintw实际上正在打印。 只是您立即刷新窗口或关闭窗口,因此看不到打印内容。

在关闭或刷新窗口之前尝试添加getch

    for(int i = 0; i < rows; i++){

        mvwprintw(win, i, 0,"%s", stuff);
        getch();  //here
        wrefresh(win);
    }
getch();  //here
endwin();

或者甚至可以使用sleep