Tôi có một chương trình ncurse nhỏ tôi đang chạy, nhưng đầu ra dường như không hiển thị trừ khi tôi dán wrefresh()
trong một vòng lặp while.NCurses Refresh
Có một số bộ đệm đang diễn ra hay không? Tôi đã thử các chức năng khác của refresh
trong thư viện và fflush
với stddout
(mà tôi không nghĩ là có ý nghĩa, nhưng đáng thử), nhưng không có gì có vẻ hiệu quả.
Câu hỏi nhỏ thứ hai: để thực hiện getch()
không chặn, chúng tôi cần gọi nodelay(win,TRUE)
, phải không?
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();
}
Tôi đã thêm mã sau: trong khi (ERR == getch()) { wrefresh (thắng); ++ ctr; } và đầu ra có vẻ tốt, nhưng tôi vẫn không hiểu tại sao ban đầu nó không hiển thị mà không lặp. – Tim