我有一个正在运行的小ncurse程序,但输出似乎只有在我将 `wrefresh()` 放入 while 循环中才会显示出来。是否存在某种缓冲机制?我试过库中的其他 `refresh` 函数以及 `fflush` 与 `stddout`(我认为这是没有意义的,但值得一试),但都无效。
另一个小问题:为了使 `getch()` 成为非阻塞的,我们需要调用 `nodelay(win,TRUE)`,对吗?
代码如下:
```c void main() { initscr(); start_color(); init_pair(1,COLOR_YELLOW,COLOR_CYAN); WINDOW *win = newwin(10,10,1,1); wbkgd(win,COLOR_PAIR(1)); wprintw(win,"Hello, World."); wrefresh(win); getch(); delwin(win); endwin(); } ```
另一个小问题:为了使 `getch()` 成为非阻塞的,我们需要调用 `nodelay(win,TRUE)`,对吗?
代码如下:
```c void main() { initscr(); start_color(); init_pair(1,COLOR_YELLOW,COLOR_CYAN); WINDOW *win = newwin(10,10,1,1); wbkgd(win,COLOR_PAIR(1)); wprintw(win,"Hello, World."); wrefresh(win); getch(); delwin(win); endwin(); } ```