我正在尝试通过在每一行中打印一个字符串来同时测试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;
}
答案 0 :(得分:1)
printw
和mvwprintw
实际上正在打印。
只是您立即刷新窗口或关闭窗口,因此看不到打印内容。
在关闭或刷新窗口之前尝试添加getch
。
for(int i = 0; i < rows; i++){
mvwprintw(win, i, 0,"%s", stuff);
getch(); //here
wrefresh(win);
}
getch(); //here
endwin();
或者甚至可以使用sleep
。