Hab mal ne Frage...
-
Ich hab hier schonmal rumgeschaut, aber keine antwort gefunden,
also hoff' ich mal das mir hier wer helfen kann.Ich suche nach einer Möglichkeit in einer C++ Konsolenanwendung
Pausen einzubauen. Es soll ein Text ausgegeben werden, dann
eine Pause von z.B. 5 sek. , und danach ein weiterer Text.Für Lösungsvorschläge schonmal danke.
Canon
P.S.: falls möglich bitte einfachen code, bin noch ziemlich unerfahren.
-
Für Windows:
#include <windows.h> #include <iostream> using namespace std; int main() { cout << "Text" << endl; Sleep(3000); cout << "Dieser Text erschien mit 3 Sekunden Verzoegerung."; int i; // Primitivmethode, um Konsole offen zu halten ;-) cin >> i; return 0; }
-
Portabel:
#include <time.h> time_t Start; time (&Start); time_t End=Start+5; //Für 5 sekunden while (Start!=End) { time (&Start); }
Das ist halt nur sekundengenau. Also mindestens eine Sekunde musst du warten. Sonst kannst du auch GetTickCount (nur windows) benutzen, das liefert Millisekunden. Oder besser Timer aus anderen libs.
Edit: etliche Schreibfehler ^^
-
Danke nochmal!
Hätte nich gedacht dass das so easy is.
-
Deine Methode hat den Nachteil, dass die Prozessorzeit nicht abgegeben wird.
-
for(i=0;i<60000;i++){ sleep(1); cout <<i<<"sec.Verzoegerung."<<endl; oder do{ i=0;?i==6000;:i++;sleep(1);cout <<i <<"sec.Verzoegerung."<<endl; } while(i<=6000);
-
Optimizer schrieb:
Deine Methode hat den Nachteil, dass die Prozessorzeit nicht abgegeben wird.
Doch, wird sie - trotz des busy waiting. Dass dir das BS zyklisch den Prozessor entzieht, kannst du (zum Glück) nicht verhindern.
-
Cico schrieb:
for(i=0;i<60000;i++){ sleep(1); cout <<i<<"sec.Verzoegerung."<<endl; oder do{ i=0;?i==6000;:i++;sleep(1);cout <<i <<"sec.Verzoegerung."<<endl; } while(i<=6000);
Ja ne is klar...
-
interpreter schrieb:
Ja ne is klar...
ja!=ne?ja==is_klar;:ne==is_unklar;
-
@Cico: Das dein Code Schrott ist, ist dir aber klar, oder?
-
sein code ist lolig
-
welchen code meinst du?
-
Tjooo, welchen wird er wohl meinen... *grübel
-
*g* Wie diese billig-Threads immer so groß werden?
Cico schrieb:
welchen code meinst du?
Deine sleep schleife. Entweder gleich sleep (60000) oder gleich time () oder GetTickCount oder einen bliebigen anderen, ausreichend genauen Timer.
Kann mir aber kaum vorstellen das ein Programmierer den User zu einer oder gar mehreren Sekunden unnützen Wartens verdonnern will. Ich denke mit Millisekunden ist das ganze etwas sinnvoller
-
oh shit sorry!ihr habt recht...kleiner proggi fehler:-)
ich hoffe der code ist besser so auf die schnelle...#include <iostream> using namespace std; int i,j=0; int main(){ do{ for(i=1;i<2;i++){ j++; } sleep(1); i=0; i+=j; cout << i<<" sec.Verzoegerung...\n"; }while(i<60); }
-
Troll
-
interpreter schrieb:
Troll
war wohl n schreibfehler
-
interpreter schrieb:
Doch, wird sie - trotz des busy waiting. Dass dir das BS zyklisch den Prozessor entzieht, kannst du (zum Glück) nicht verhindern.
Oh wow, dann wird der PC also nur *fast* angehalten