"Vermeiden" einer Endlosschleife

frisbee

Grünschnabel
Hallo zusammen,

ich mache gerade meine ersten Erfahrungen mit C++ und habe ein Problem dabei.

Ich möchte ein Programm (Konsolenanwendung) schreiben, welches alle fünf Sekunden die "Uhrzeit" im Sekundenformat anzeigt. Solange, bis das Programm beendet wird. Das habe ich hinbekommen, das Problem besteht aber darin, dass der Prozessor zu 100% ausgelastet ist, wenn das Programm läuft.

Hier ist erstmal der Quelltext:

int y, x=5, a=1;

time_t t1;
y = time( &t1);

cout << y << endl;

while(a>0)
{

if(time( &t1) == y + x)
{
cout << time( &t1) << endl;

x = x + 5;
}
}

Das Problem mit der Prozessorauslastung hängt sicherlich mit der Schleife zusammen. Hat jemand von Euch eine Idee, wie man dem Programm beibringen kann, die Zeit alle 5 Sek. anzuzeigen, ohne dass dabei die Schleife zig mal durchlaufen wird?

Vielen Dank im Voraus

frisbee.
 
Ich schon eine Lösung gefunden :)

Mit dem Befehl "Sleep (in 1/1000sec)" + #include<Windows.h> kann man eine Pause erzwingen und den Schleifendurchlauf soweit verringern, dass die CPU scheinbar nicht mehr belastet wird.

Aber vielleicht gibt es bessere Lösungen?

Gruß

frisbee

while(a>0)
{
Sleep(2000);

if(time( &t1) == y + x)
{
cout << time( &t1) << endl;

x = x + 6;
}
}
 
Zurück