Ho un piccolo programma ncurse in esecuzione, ma l'output non sembra presentarsi a meno che non attacchi il wrefresh()
in un ciclo while.NCurses Refresh
C'è qualche buffer in corso o qualcosa del genere? Ho provato altre funzioni refresh
nella libreria e fflush
con stddout
(che non credo abbia senso, ma vale la pena provarlo), ma niente sembra funzionare.
Una seconda piccola domanda: per rendere getch()
non bloccante, è necessario chiamare nodelay(win,TRUE)
, giusto?
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();
}
Ho aggiunto il seguente codice: while (ERR == getch()) { wrefresh (win); ++ ctr; } e l'output sembra buono, ma ancora non capisco perché inizialmente non viene visualizzato senza il loop. – Tim