Konsolenfenster löschen
-
Kannst du mir evtl. ein Beispiel geben? Ich werde daraus nicht schlau...
Mit freundlichen Grüßen
DerRatlose
-
was spricht gegen system("cls") ?
-
Vorsicht, Code ist ungetestet, dass meiste ist aus der MSDN geraten:
#include <iostream> #include <windows.h> #include <stdio.h> void clearScreenBuffer( HANDLE hOutPut, CONSOLE_SCREEN_BUFFER_INFO screenInfo) { COORD pos = { 10, 0 }; SetConsoleCursorPosition( hOutPut, pos ); GetConsoleScreenBufferInfo(hOutPut, &screenInfo); unsigned short stride = screenInfo.dwMaximumWindowSize.X * screenInfo.dwMaximumWindowSize.Y; for( unsigned short rows = 0; rows < stride; ++rows ) { std::cout<<" "; } }; int main() { HANDLE hOutPut = GetStdHandle( STD_OUTPUT_HANDLE ); CONSOLE_SCREEN_BUFFER_INFO screenInfo; clearScreenBuffer( hOutPut, screenInfo ); std::cin.get( ); }
-
DerRatlose schrieb:
...Ich habe dafür einfach nichts gefunden...
http://msdn.microsoft.com/en-us/library/ms687401(VS.85).aspx
mfg,
wip0r
-
1. Mit GetConsoleScreenBufferInfo die Größe des ScreenBuffers ermitteln.
2. Mit FillConsoleOuputCharacter die entsprechende Anzahl an ' ' in die Konsole schreiben:void ClearScreen() { HANDLE handle; CONSOLE_SCREEN_BUFFER_INFO csbi; COORD target; DWORD written; target.X = 0; target.Y = 0; handle = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(handle, &csbi); FillConsoleOutputCharacter(handle, ' ', csbi.dwSize.X * csbi.dwSize.Y, target, &written); }
-
Hallo,
danke für die Beispiele. Habe beide mal ausprobiert.
Habe dann den von Belli gewählt, der funktioniert genau so, wie ich es brauche. Musste nur noch am Enge anfügen, dass der Cursor wieder oben links in die Ecke gesetzt wird.Mit freundlichen Grüßen
DerRatlose
-
Habe dann den von Belli gewählt, der funktioniert genau so, wie ich es brauche. Musste nur noch am Enge anfügen, dass der Cursor wieder oben links in die Ecke gesetzt wird.
Meiner tut in etwa dasselbe, dein Problem war wohl eher, dass du ihn nicht implementieren konntest und der von Belli auf Anhieb funktionierte.
-
Kóyaánasqatsi schrieb:
Meiner tut in etwa dasselbe
Wenn ich das richtig sehe, schlägst Du vor, zig-mal 'cout' aufzurufen. Erstens ist das keine WinApi-Funktion, aber viel wichtiger: Das dürfte bedeutend langsamer sein.
-
Ich konnte beide implementieren, aber der von Belli lief einfach sauberer.
Mit freundlichen Grüßen
DerRatlose
-
oder ganz einfach:
clrscr();
ist in stdio.h oder conio.h drin!
-
bist du sicher das es clrscr(); gibt?
bei mir gibt es das in beiden headern nicht..
hab MinGW mit Code::Blcks