Wie man eine animation zum laden im Konsolen-Anwendung in C++geschrieben?
Ich bin Codierung einer Konsolenanwendung in c++ und ich brauche, um so etwas wie eine "loading.gif" nur durch die mithilfe von ASCII-Zeichen.
Im folgenden ist eine Liste der Charaktere, die ich verwenden sollten:
- --
- \
- |
- /
- --
Diese Symbole wird eine animation zum laden von Radsport.
Wenn ich allerdings schreiben die Ausgabe, es werden wie:
Line-Ausgang 1: --
Line-Ausgang 2: \
Line-Ausgang 3: |
Line-Ausgang 4: /
- Ausgabe Zeile 5: --
Muss ich das in etwa so machen:
Line-Ausgang 1: [dieser ersetzt werden, die ganze Zeit]
Sollte es niemals gehen Sie in die zweite Zeile.
Wie kann ich das in C++? Gibt es irgendeine Art von ersetzen Funktion?
möglich, Duplikat der Drucken drehenden cursor in einem terminal ausführen der Anwendung mit C
InformationsquelleAutor Aristona | 2011-12-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die backspace-Zeichen (
'\b'
) zurück und überschreiben von Zeichen auf die Konsole. Sie müssen auch Spülen, um die Ausgabe nach jeder änderung, andernfalls könnte die Ausgabe Aufenthalt in einem Puffer, und nicht an der Konsole angezeigt werden.Hier ist ein einfaches Beispiel:
Das ist merkwürdig. Es funktioniert, wie erwartet, auf meinem Linux-bash-console.
denke, es ist nur osx dann^^;
InformationsquelleAutor Mike Seymour
Microsoft Windows version.
InformationsquelleAutor Software_Designer
Bleiben sehr einfach, können Sie mit der backspace-Zeichen, wie hier erklärt wird, die tatsächlich erscheint, um eine Kopie der Frage.
Für kompliziertere Dinge, wird es Plattform-spezifische; festlegen der cursor-position vielleicht dies kann helfen, wenn Sie auf Windows.
InformationsquelleAutor codeling
Mike Seymour Logik verwendet werden, aber mit einem realistischen look.
InformationsquelleAutor Taimoor Haider
InformationsquelleAutor C0LD
Sowie cross-Plattform-Antwort:
Beachten Sie, dass chrono_literals sind nur in c++14, die Sie verwenden können
std::chrono::seconds s(1);
statt, vorbeis
zustd::thread::sleep_for();
InformationsquelleAutor scx
InformationsquelleAutor l3mpik