countdown
-
hallo
ich will mir ein countdown program coden und habe ein problem mit der ausgabe ich will dass am besten in einer zeile die zeit runtergezählt wird also wie bei einer uhr doch bei mir wird des bis jetzt immer in einer neuen zeile angezeigt aber auch nicht einmal die aktuelle verbleibende zeit sondern nur erst dann wenn die zeit vorbei ist wird das ende angezeigt wie kann ich des anderst schreiben ?
mein code dazu
#include <iostream.h> #include <windows.h> int main() { int Zeit; cout << "Von welcher Zeit?"; cin >> Zeit; for (int counter = Zeit ;counter >= 0; counter--) { cout << "zeit: \n" << counter; Sleep(1000); } return 0; }
-
ah so bisserl weiter bin ich schon gekommen
jetzt wird in jeder zeile pro sekunde was neues ausgegebn aber ich weiss immer noch nicht wie die aktuel verbleibenden sekunden angezeigt werden
#include <iostream.h> #include <windows.h> #include <stdio.h> int main() { int Zeit; cout << "Von welcher Zeit?"; cin >> Zeit; for (int counter = Zeit ;counter >= 0; counter--) { printf("%zeit\n",counter); Sleep(1000); } return 0; }
-
Dein 2er Quelltext ist müll, weil du da plötzlich C und C++ mixt!
zur Lösung:
#include <iostream.h> #include <windows.h> int main() { int Zeit; cout << "Von welcher Zeit?"; cin >> Zeit; for (int counter = Zeit ;counter >= 0; counter--) { /* cout << "zeit: \n" << counter; Hier steckt der Fehler!! Du gibst "zeit: " aus, dann einen Zeilenumbruch(!!!) und erst danach counter die korrekte Zeile währe also so: */ cout << "zeit: " << counter << endl; Sleep(1000); } return 0; }
-
thenow schrieb:
ah so bisserl weiter bin ich schon gekommen
jetzt wird in jeder zeile pro sekunde was neues ausgegebn aber ich weiss immer noch nicht wie die aktuel verbleibenden sekunden angezeigt werden
irgendwie verstehe ich nicht was du meinst. es werden doch die verbleibenden sekunden angezeigt.
#include <iostream.h>
besser:
#include <iostream> using namespace std;
und um bei c++ zu bleiben:
#include <iostream> #include <windows.h> using namespace std; int main() { int Zeit; cout << "Von welcher Zeit?"; cin >> Zeit; for (int counter = Zeit ;counter >= 0; counter--) { cout << "zeit: " << counter << endl; Sleep(1000); } return 0; }
-
zu spät.
-
danke für die schnelle hilfe
-
Wenn dir die conio.h zur verfügung steht kannst du mit gotoxy(x,y) positionieren.
#include <iostream> #include <conio.h> #include <windows.h> using namespace std; int main() { int Zeit; cout << "Von welcher Zeit?"; cin >> Zeit; for (int counter = Zeit ;counter >= 0; counter--) { clrscr(); gotoxy(1,1); cout << "zeit: " << counter << endl; Sleep(1000); } return 0; }
-
_Stefan schrieb:
Wenn dir die conio.h zur verfügung steht kannst du mit gotoxy(x,y) positionieren.
Stimmt nicht ganz!!
Das geht z.B. nur mit der ausm Borland. MSVC++ hat ne abgespeckte wo die Fubnktion nicht drin ist!
Siehe improoved Konole im Konsolen FAQ
-
mach mal statt
<<endl;
ein
<<'\r'<<flush;
-
Den zweiten Code als Müll zu bezeichnen ist übertrieben
C++ ist eine Erweiterung von C und enthält das komplette C, somit ist der Code durch die Standards abgedeckt.
An vielen Stellen ist eine printf viel klarer und übersichtlicher als eine cout Sequenz
PS: Auch reine C++ Adepten sollten sich regelmäßig mit den Grundlagen beschäftigen und die sind nu mal C. Für beides gibt es den richtigen Einsatz
-
war etwas überspitzt *zugeb*
fakt ist aber dch, das es bei soeinem programm eh nicht auf großartige effiziens ankommt sondern eher "learning by doing" is und von daher solte man schon bei bestimmten regeln bleiben und diese sind nunmal unter c++ generell beim OOP zu bleiben, was in diesem Falle doch die streams bedeutet, oder sehe ich das falsch/me ist ein produkt dieses Forums, alles was er an prinzipien kennt hat er von euch *g*
PS: Hab mich erst mit rein C beschäftigt und bin auch eher der Fan von printf() & co. Alles weiter siehe "/me" text
-
Die aus C bekannten Ausgabefunktionen printf() sollen nicht gemeinsam mit dem C++ Ausgabeoperator << gemischt werden. Die beiden Methoden verwenden unterschiedliche Konzepte des Zugriffs auf Streams, die sich teilweise überschneiden.