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.


Anmelden zum Antworten