Dos-Verzögerungen mit C++

maeview

New member
Hallo an alle!!!
SuFu ergab nix.
Ich arbeite mit dev-c++ und möchte eine Dos-Anwedung schreiben,
in der nach jeder Zeile eine Verzögerung von 2 Sekunden kommt.
Also
"Zeile1" (2 secs. warten)
"Zeile2" und so weiter.
Hab es mit sleep() versucht, ist aber glaube ich nur die Funk. um das gesamte Programm zu freezen.
Dazu hab ich ja return 0;...

hoffe mir kann jemand helfen

Achja hier noch der Code:

#include <iostream.h>
#include <windows.h>


using namespace std;

int main (int argc, char *argv[])
{
cout << "Zeile1" << endl; (2 sec. wait)
cout << "Zeile2" << endl; (2 sec. wait)
cout << "Zeile3" << endl; (2 sec. wait)
cin.get();

return 0;
}
 
#include <cstdlib>
#include <iostream>
#include <time.h>

using namespace std;

void warte (time_t wartezeit)
{
time_t aktuellezeit;
time_t merker;

aktuellezeit = time(0); // vergangene Sekunden seit 1.1.1970 holen

merker = aktuellezeit + wartezeit;

while (aktuellezeit < merker)
{
aktuellezeit = time(0); // vergangene Sekunden seit 1.1.1970 holen
}
}


int main(int argc, char *argv[])
{
time_t wartezeit = 2;

cout << "Zeile 1" << endl;
warte (wartezeit);

cout << "Zeile 2" << endl;
warte (wartezeit);

cout << "Zeile 3" << endl;
warte (wartezeit);

system("PAUSE");
return EXIT_SUCCESS;
}



ist mir gerade so eingefallen
 
Danke fr34k
Also darauf wär ich jetz net gekomme.
Muss nur <iostream.h> schreibe, also das h anhängen.
using namespace std; kann ich weglassen und bei int main, das in der Klammer genauso.
Bloß ich muss vor der Abschlussklammer } noch cin.get(); tippen,
sonst funzt alles.

Danke
______________________________________________________________________________________
So neue Frage:
Ich hab mal einen Calc. versucht zu programmieren, der halt nur auf PLus (addieren) ausgeht, so zum Test.Jetzt ist meine Frage, wieso die Dos-Anwendung sich gleich schließt, wenn ich beide Zahlen eingebe und auf Enter drücke.Am Ende des Quelltextes steht return 0;.
Wenn ich system("PAUSE"); eingebe macht er es.
Ich weiß die Frage ergibt keinen Sinn, da ich die Antwort darauf ja schon hab.
Trotzdem würde ich gerne wissen, wieso das Programm so reagiert.

Hier der Quelltext:
#include <iostream.h>
int Add (int x, int y)
{

cout << "Die 2 zu addierenden Zahlen sind " << x << " + " << y << endl;
return (x+y);
}

int main ()
{
cout << "Ich kann rechne!" << endl;
int a, b, c;
cout << "Geben Sie zwei Zahlen ein (Z.B. 5Leer5) : ";
cin >> a;
cin >> b;
cout << " " << endl;
c = Add(a,b);
cout << "Addiere" << endl;
cout << "Ergebnis lautet " << c << endl;
cout << "Beenden..." << endl;
cin.get();

system("PAUSE"); //Hier sollte return 0; stehn
}

Thx im Voraus


 
Zuletzt bearbeitet:
Hallo,
das return 0; kannst du auf alle Fälle schon mal hinschreiben...
Die Funktion von system("pause"); übernimmt bei dir immer cin.get();.

Lösch mal den Eingabe-Puffer:
Code:
cin.flush();
oder
Code:
fflush();


//Edit:
Also lass das system("pause") weg und lösche den Puffer vor cin.get()
 
eigentlich ganz einfach

dazu müssen wir etwas tiefer und alles vereinfachen

wenn ein programm keinen befehl mehr abzuarbeiten hat
setzt der compiler automatisch "return to Besy (betriebssystem)"
ansonsten hätte man ein chaos im system und bluescreens

daher wenn man nicht will das sich das programm schließen soll muss man noch etwas drin stehen haben
also zb ein cin oder system("pause")


zudem es ist nicht schön wenn man variablen mitten im code initialisiert

cout << "Ich kann rechne!" << endl;
int a, b, c;
 
Zuletzt bearbeitet:

Online-Statistiken

Zurzeit aktive Mitglieder
1
Zurzeit aktive Gäste
20
Besucher gesamt
21

Beliebte Forum-Themen

Zurück
Oben Unten