Countdown 10, 9, 8, 7, ...
-
Guten Tag

Ich würde gerne wissen wie ich das Programm richtig schreiben muss.

Eigentlich soll wen man das Programm startet ein Countdown von 10 ab runterlaufen . Das tut es auch fast , nur steht ab 9 als letzte Ziffer immer die 0. Das würde ich gerne wegkriegen. Da meine C++ Kentnisse aber noch nicht so ausgereift sind habe ich keine Ahnung wie. Vieleich weis ja jemand von Euch wie das geht

#include <iostream> #include <windows.h> using namespace std; int main() { int countdown; cout.fill( ); cout << "Bitte Warten: \n" ; for(countdown = 10; countdown >= 0; --countdown) { cout << countdown << "\r" ; Sleep(1000); } }DAMKE im Voraus für die Andworten

-
Ist jetzt ziemlich unelegant gelöst mit dieser fiesen system() Funktion, aber ich gehe mal davon aus das ist im Moment das einfachste für dich (gewöhn dir das nicht an!)
#include <iostream> #include <windows.h> using namespace std; int main() { for(int countdown = 10; countdown >= 0; --countdown) { system("CLS"); cout << "Bitte Warten:\n" << countdown; Sleep(1000); } return 0; }
-
Danke erst ma
Gut das funktioniert jetz und ich glaub ich habs auch kapiert ,
Aber warum das mit WINDOWS.H so unelegant is kp ich nich
Kanst mia das bitte mal genauer erleutern?
-
Nicht windows.h ist unelegant, es ist unelegant diese system() Funktionen zu benutzen. Alles, was diese system() Funktion kann, kann nämlich auch die WinAPI. Aber such einfach mal danach, die Erklärung warum wurde schon oft gegeben
-
RealTommi schrieb:
Nicht windows.h ist unelegant, es ist unelegant diese system() Funktionen zu benutzen. Alles, was diese system() Funktion kann, kann nämlich auch die WinAPI. Aber such einfach mal danach, die Erklärung warum wurde schon oft gegeben
ich hab aber doch gar nich system() geschrieben?

-
War auch auf mein Posting bezogen, nicht auf deins. Mein Fehler

-
Wahrscheinlich etwas eleganter als mit system() ist es, die Ausgabebreite so festzulegen, daß der komplette vorige Text überschrieben wird:
cout.width(2);cout<<countdown<<'\r';