Systembefehl CLS
-
Wie implementiere ich den Systembefehl CLS(Clera Screen) in meinem C++ Programm.
Danke für jede Antwort.
-
system("cls");
-
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Versuch system("cls") möglichst zu vermeiden, soll schlechte auswirkungen haben.
In wiefern kann ich dir nicht sagen.
Nur wie man den Befehl durch einen anderen ersetzen kann, kann ich dir sagen.Du nimmst einfach folgenden Code zu deinem Programm:
//Clearscreen! //****************************************************************************** void gotoxy (int x, int y) { COORD pos={x, y}; cout.flush (); SetConsoleCursorPosition (GetStdHandle (STD_OUTPUT_HANDLE), pos); } void clrscr () { HANDLE handle=GetStdHandle (STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO info; COORD pos={0, 0}; DWORD dw; cout.flush (); GetConsoleScreenBufferInfo (handle, &info); cout.flush (); FillConsoleOutputAttribute (handle, info.wAttributes, info.dwSize.X*info.dwSize.Y, pos, &dw); cout.flush (); FillConsoleOutputCharacter (handle, ' ', info.dwSize.X*info.dwSize.Y, pos, &dw); gotoxy (0, 0); } //******************************************************************************
und schreibst dann statt system("cls") an der gleichen stelle einfach nur noch:
clrscr();
und schon wird der Bildschirm gelöscht genau wie beim system Befehl.
Aber ohne schlechte Nebenwirkungen.mfg
Last-Boyscout
-
Eine schlechte Nebenwirkung von
system("cls");
ist, dass es unter Linux beispielsweise keinen Effekt hat - ausser vielleicht "unknown command", denn dort heisst es stattdessen
system("clear");
Aber da das hier "DOS und Win32-Konsole" ist, dürfte das glaub ich ziemlich unerheblich sein.
-
Mir wurde von mehreren Seiten von sytem("cls") abgeraten weil er möglicherweise mehr löscht als er soll.
Kanns dir nicht besser erklären.Naja und das mit Linux ist ja auch was.
mfg
Last-Boyscout
-
Könnte auch was mit den Puffern zu tun haben, mal sehen, vielleicht hat jemand was gehört oder einen entsprechenden Link? Weil, theoretisch ist das ja der normale DOS-CLS-Befehl, darüber war mir bisher nichts bekannt..vielleicht liegt es aber auch an der Windows-Emulation, wo Windows noch ein Stück "nachräumt" und evtl. dort die Puffer leert oder so...
-
proggaholic schrieb:
Könnte auch was mit den Puffern zu tun haben, mal sehen, vielleicht hat jemand was gehört oder einen entsprechenden Link? Weil, theoretisch ist das ja der normale DOS-CLS-Befehl, darüber war mir bisher nichts bekannt..vielleicht liegt es aber auch an der Windows-Emulation, wo Windows noch ein Stück "nachräumt" und evtl. dort die Puffer leert oder so...
Habs gefunden:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39453.html
Hier im Forum^^