printw()和mvwprintw()不打印

问题描述 投票:0回答:1

我试图通过在每个新行打印一个字符串来测试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;
}
c ncurses
1个回答
1
投票

printwmvwprintw实际上是印刷品。只是您立即刷新窗口或关闭窗口,因此您无法看到打印件。

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

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

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

甚至你可以使用sleep

© www.soinside.com 2019 - 2024. All rights reserved.