Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Czyszczenie ekranu

Ostatnio zmodyfikowano 2017-10-29 13:43
Autor Wiadomość
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?
P-166166
latajacaryba
» 2017-10-29 01:57:13
np. system("cls");
http://cpp0x.pl/forum/temat/?id=14597
P-166167
pekfos
» 2017-10-29 13:43:33
np. system("cls");
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:
C/C++
#include <Windows.h>
#include <iostream>

void clear()
{
    // Uchwyt konsoli
    HANDLE console = GetStdHandle( STD_OUTPUT_HANDLE );
    // Pobierz rozmiar konsoli
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo( console, & csbi );
    DWORD tmp;
    COORD start = { 0, 0 };
    // Wyczyść znaki
    FillConsoleOutputCharacterA( console, ' ', csbi.dwSize.X * csbi.dwSize.Y, start, & tmp );
    // Wyczyść atrybuty
    FillConsoleOutputAttribute( console, csbi.wAttributes, csbi.dwSize.X * csbi.dwSize.Y, start, & tmp );
    // Ustaw kursor na początek
    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.
P-166185
« 1 »
  Strona 1 z 1