Estoy aprendiendo a programar en C y quiero poder escribir caracteres en la terminal mientras mi código se está ejecutando sin presionar return. Mi programa funciona, sin embargo, cuando llamo al initscr()
, la pantalla se borra, incluso después de llamar al filter()
. La documentación para filter
sugiere que debe deshabilitar el borrado, sin embargo, este no es el caso para mí.¿Cómo uso getch de curses sin borrar la pantalla?
#include <stdio.h>
#include <curses.h>
#include <term.h>
int main(void) {
int ch;
filter();
initscr();
cbreak();
noecho();
keypad(stdscr, TRUE);
while((ch = getch()) != EOF);
endwin();
return 0;
}
¿Por qué el código anterior sigue limpiando la pantalla y qué se puede hacer para solucionarlo?
Estoy usando Debian Lenny (estable) y gnome-terminal si eso ayuda.
Para PDCurses puede establecer el PDC_PRESERVE_SCREEN variables de entorno o PDC_RESTORE_SCREEN a cualquier valor: desde el historial de archivos: – Brandin
PDC_PRESERVE_SCREEN Si esta variable de entorno está configurado, PDCurses no borrará la pantalla con el blanco predeterminado en negro al inicio. Esto le permite superponer una ventana sobre el fondo de la pantalla existente. PDC_RESTORE_SCREEN Si se establece esta variable de entorno, PDCurses tomará una copia del contenido de la pantalla en el momento en que se inicie PDCurses; initscr(), y cuando se invoca endwin(), la pantalla se restaurará. – Brandin