2017-08-25 2 views
0

Ich versuche eine Ladeanimation für ein Programm zu erstellen, das ich mit der C++ - Konsole mache. Ich habe System ("cls") benutzt, um die Konsole zu löschen (ich weiß, dass es schlecht ist) Übung), aber das Hauptproblem ist, dass der Bildschirm flackert, wenn ich das Programm starte. Mein Code sieht in etwa so aus:C++ - Flackern beim Löschen der Konsole

Gibt es eine Möglichkeit, das Flackern zu beheben? Vielen Dank.

//loop 
system("cls"); 
cout << "Loading..." << num << "%"; 
+1

Ich würde empfehlen, eine Bibliothek zu verwenden, die diese Probleme bereits gelöst hat, z. PDcurses oder [Windows API-Konsolenfunktionen] (https://docs.microsoft.com/en-us/windows/console/console-functions) –

+0

Sie sollten dieses versuchen: https://support.microsoft.com/en -us/help/99261/how-to-performing-clear-Bildschirm-cls-in-einer-Konsole-Anwendung – Asesh

Antwort

1

Während Sie als Kommentator vorgeschlagen tun können, und eine Flüche Stil-Bibliothek verwenden, sind Sie wahrscheinlich auf der Suche nach SetConsoleCursorPosition (2017 docs: https://docs.microsoft.com/en-us/windows/console/setconsolecursorposition)

BOOL WINAPI SetConsoleCursorPosition(
    _In_ HANDLE hConsoleOutput, 
    _In_ COORD dwCursorPosition 
); 

Parameter

hConsoleOutput [in]

Ein Griff in den Konsolenbildschirm-Puffer. Der Handle muss das Zugriffsrecht GENERIC_READ haben. Weitere Informationen finden Sie unter Sicherheit und Zugriffsrechte für den Konsolepuffer.

dwCursorPosition [in]

A COORD Struktur, die die neue Cursor-Position gibt, in Zeichen. Die Koordinaten sind die Spalte und die Zeile einer Bildschirmpufferzeichenzelle. Die Koordinaten müssen innerhalb der Grenzen des Konsolenbildschirmpuffers liegen.

Klare Bildschirm/cls ist nicht für Animationen gedacht.