Den Bildschirm leeren/löschen
-
Um den Bildschirm zu leeren gibt es sehr viele verschiedene Methoden. Generell sollte man aber bedenken, ob man den Bildschirm wirklich löschen will, da so die Fähigkeit das Programm `Unix`-typisch zu benutzen, in dem man es zu anderen Anwendungen piped verloren geht (Wenn es sich eh um ein UI handelt, ist das natürlich egal)!
1. (n)curses - clear
/*Compile: gcc -lncurses clr.c*/ #include <curses.h> int main(void) { initscr(); /*init ncurses*/ cbreak(); noecho(); printw("Text ...\n"); getch(); /*wait for key*/ clear(); printw("Wie sauber\n"); getch(); endwin(); return 0; }
2. (n)curses - termios (danke an virtual)
/*Compile: gcc -lncurses clr.c*/ #include <stdio.h> #include <term.h> int main(void) { printf("Text ...\n"); getchar(); setupterm(NULL, 1, NULL); putp(clear_screen); printf("Wie sauber\n"); return 0; }
3. ANSI Escape Sequenzen
(geht nur auf Terminals, wo die ANSI Escape Sequenzen aktiviert sind)
/*Compile: gcc clr.c*/ #include <stdio.h> void clear() { printf("\033[2J\033[1;1H\033[m"); } int main() { printf("Text ...\n"); getchar(); clear(); printf("Wie sauber\n"); }
Die "Lösung" mit man: system(3) und man: clear(1) habe ich weggelassen, da diese die langsamsten und schlechtesten sind!
(Der Beitrag ist aus 2 älteren Threads zusammen gestellt worden
http://www.c-plusplus.net/forum/viewtopic.php?t=39521
http://www.c-plusplus.net/forum/viewtopic.php?t=39522)Danke an Pretty für die Korrektur eines Fehlers.