Problema con ncurses y el stdout
Hola!
He empezado a trabajar con las ncurses para hacer una aplicación en modo consola. Mi problema es que solo necesito utilizar ncurses en una parte concreta y en el resto la salida es normal.
Asà que inicio las curses (initscr()), trabajo en modo ncurses y cuando salgo con endwin() el stdout no se vacÃa con despues de un printf, se van acumulando las lineas. Cada vez que hago un printf pone en pantalla lo que puso antes mas las nuevas lineas que escribo. Alguna idea?
Un saludo.
He empezado a trabajar con las ncurses para hacer una aplicación en modo consola. Mi problema es que solo necesito utilizar ncurses en una parte concreta y en el resto la salida es normal.
Asà que inicio las curses (initscr()), trabajo en modo ncurses y cuando salgo con endwin() el stdout no se vacÃa con despues de un printf, se van acumulando las lineas. Cada vez que hago un printf pone en pantalla lo que puso antes mas las nuevas lineas que escribo. Alguna idea?
Un saludo.
Prueva de hacer un fflush (stdout) y otro a stderr cada vez que imprimes, aunque tu problema realmente es muy raro...
Asà sà funciona, ya lo probé, pero no es como para estar todo el rato con fflush, es un programa de 2000 lineas y muchos printf.
Gracias por la respuesta!
Gracias por la respuesta!
haz lo siguiente:
crea una funcion _printf asi:
int _printf (char *s, ...)
{
va_list listaPtr;
int resultado=0;
va_start( listaPtr, formato );
resultado = vprintf( formato, listaPtr );
va_end( listaPtr );
fflush (stdout);
return resultado;
}
No olvides de incluir stdarg.h y cambiar las referencias de printf por _printf.
crea una funcion _printf asi:
int _printf (char *s, ...)
{
va_list listaPtr;
int resultado=0;
va_start( listaPtr, formato );
resultado = vprintf( formato, listaPtr );
va_end( listaPtr );
fflush (stdout);
return resultado;
}
No olvides de incluir stdarg.h y cambiar las referencias de printf por _printf.
