Bildschirm löschen auf Konsole

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Immer wieder sieht man in C und C++ Quelltexten
    system("cls");
    dabei bieten einige Compiler auch Möglichkeiten ohne den Umweg über system("what ever").
    == DOS ==
    Hier mal die Varianten von älteren Compilern:
    shedai.net/c/new/PCLRSCRN.HOW
    Unter DOS konnte man ja noch viel mit dem Videointerrupt INT 10h lösen.

    Wer die Besonderheiten der Grafikkarten nutzte und die unterschiedliche Adressierung der Speicher für die Grafikkarte berücksichtigte, konnte auch den Speicher der Grafikkarte ohne den Umweg über den Interrupt beschreiben. Dann wurde die Grafiken aber sehr deutlich schneller.

    == Windows Konsole ==
    Unter Windows wurde die direkte Programmierung der Speicher weitgehend eingeschränkt. Da muss man sich der Windows-Funktionen bedienen.
    Einige der oben genannten Compiler sind ja bis in die heutige Zeit weiter entwickelt worden. Da funktionieren gar manchmal die alten Funktionen noch unter neuen Windows Versionen. Im Zweifel ausprobieren.

    Hier mal ein Beispielcode mit ClrScr und GotoXY, also Borland-Dialekt:

    Quellcode

    1. #include <windows.h>
    2. void clrscr()
    3. {
    4. COORD coord;
    5. DWORD written;
    6. CONSOLE_SCREEN_BUFFER_INFO info;
    7. coord.X = coord.Y = 0;
    8. HANDLE std = GetStdHandle(STD_OUTPUT_HANDLE);
    9. GetConsoleScreenBufferInfo(std, &info);
    10. FillConsoleOutputCharacter(std,' ',info.dwSize.X*info.dwSize.Y,coord,&written);
    11. coord.X = coord.Y = 0;
    12. SetConsoleCursorPosition(std, coord);
    13. }
    14. void gotoxy(int x,int y)
    15. {
    16. COORD coord;
    17. coord.X = x;
    18. coord.Y = y;
    19. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
    20. }
    Alles anzeigen

    Dies kann man nutzen, wenn der Compiler nichts anbietet oder den "falschen" Dialekt.
    Wer Dialekte anderer Compiler-Anbieter bevorzugt kann den Quelltext ja anpassen 8)
    Kommen mehrere Dialekte in einem Projekt zum Einsatz sollte man sich mit dem Thema Codeguards auseinandersetzen um dem Compiler, eher dem Programmierer, die Möglichkeit zu erschweren, die "falsche" Funktionsauswahl zu treffen.

    Es gibt in Netz auch mehrere freie Projekte, die einem das Schreiben der Funktionen teilweise abnehmen.
    Beispiele: "inproved Console" und mehrere Projekte die den Namen "conio.h" im Namen haben entweder mit ein paar Buchstaben davor oder dahinter ( conio ).
    Hier mal ein Projekt um die Borland-Funktionen auf dem MinGw einzusetzen:
    docs.freeswitch.org/conio_8h-source.html

    10.058 mal gelesen