Czyszczenie ekranu
Ostatnio zmodyfikowano 2017-10-29 13:43
Grzesiek11 Temat założony przez niniejszego użytkownika |
Czyszczenie ekranu » 2017-10-29 01:46:20 Mam pytanie. Jakiego polecenia w C++ używa się do czyszczenia ekranu? Trzeba dołączać jakieś biblioteki? |
|
latajacaryba |
» 2017-10-29 01:57:13 np. system("cls"); http://cpp0x.pl/forum/temat/?id=14597 |
|
pekfos |
» 2017-10-29 13:43:33 Zgiń! Przepadnij! Jedyną 'zaletą' tej metody to krótki zapis, poza tym, te rozwiązanie to same wady. Jakoś to plaga tylko pod Windowsem, bo pod linuksem 'clear' sprawdza się do przepchania treści ekranu znakami nowej linii. Rozwiązanie poprawne pod Windowsem wygląda tak: #include <Windows.h> #include <iostream>
void clear() { HANDLE console = GetStdHandle( STD_OUTPUT_HANDLE ); CONSOLE_SCREEN_BUFFER_INFO csbi; GetConsoleScreenBufferInfo( console, & csbi ); DWORD tmp; COORD start = { 0, 0 }; FillConsoleOutputCharacterA( console, ' ', csbi.dwSize.X * csbi.dwSize.Y, start, & tmp ); FillConsoleOutputAttribute( console, csbi.wAttributes, csbi.dwSize.X * csbi.dwSize.Y, start, & tmp ); SetConsoleCursorPosition( console, start ); }
int main() { for( int i = 0; i < 10; ++i ) { std::cout << "Test " << i << std::endl; Sleep( 1000 ); clear(); } std::cout << "Bye."; } Zrób sobie z tego inline void clear(), wrzuć do pliku .hpp i dołączaj wszędzie gdzie będziesz potrzebować. To jest rozwiązanie poprawne, ale nie wyeliminuje problemu migania. Miganie jest naturalne wszędzie, gdzie faktycznie jest czyszczony ekran. Jak chcesz robić grę w konsoli, to zasadniczo nigdy nie chcesz czyścić ekranu. Kiedyś do tutejszego kursu C++ był dołączony taki plik z pakietem funkcji do łatwej obsługi konsoli, ale zostało to wycofane. |
|
« 1 » |