我试图通过在每个新行打印一个字符串来测试 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;
}
最佳答案
printw
和 mvwprintw
实际上正在打印。
只是您立即刷新窗口或关闭窗口,因此您看不到打印内容。
尝试在关闭或刷新窗口之前添加 getch
。
for(int i = 0; i < rows; i++){
mvwprintw(win, i, 0,"%s", stuff);
getch(); //here
wrefresh(win);
}
getch(); //here
endwin();
或者甚至您可以使用 sleep
。
关于c - printw() 和 mvwprintw() 不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54684870/