Timeout zum exit aus einer Endlosschleife, aber wie?
-
Hallo,
habe eine Endlosschleife, bei der es sein kann dass die Abbruchbedinung nicht auftritt.
Wie kann ich unter C einen Timeout einsetzten.
Es gibt doch die sleep-Funktion, dann muss es doch auch eine timer-funktion geben oder?Also irgendwie, falls 100ms vorbei und immer noch keine abbruchbed. dann exit(1) oder so.
-
hya !
#include <time.h> int main()// agga uggas cookie wargame V 0.1 Beta ( all rihghts reserved ) { clock_t boom = 1000, start= 0, stop = 0; printf("Nach Betaetigung der Entertaste, haben Sie 1000ms Zeit diese\n" "noch einmal zu druecken. Wenn Sie schnell genug sind gibt es einen" "Keks. :-D\n" "Wenn nicht, wird Ihr PC leider exploden. :-(\n" ); getchar(); start = clock(); while( !_kbhit() && boom-(stop - start) >= 0 ) { printf("%lf\r", (double) boom-(stop - start) ); stop = clock(); } if(_kbhit()) { if( _getche() == 13 ) stop = 0; } if ( stop ) puts("\nBOOOM"); else puts("Ok. Sie waren schnell genug. Sie koennen jetzt zum Baecker gehen."); return 0; }
-
na, ob das so richtig ist?^^
ich kann da nämlich nirgends 'CLOCKS_PER_SEC' erblicken.
-
clocking-freak schrieb:
na, ob das so richtig ist?^^
ich kann da nämlich nirgends 'CLOCKS_PER_SEC' erblicken.
ich denke ja. um auf sekunden zu kommen, teilt man ja durch CLOCKS_PER_SEC.
lässt man die konstante weg, dann bekommt man millisekunden.und mehr als 1000 ms zeit für nen keks gibts bei dem spiel nicht.
-
agga ugga schrieb:
ich denke ja. um auf sekunden zu kommen, teilt man ja durch CLOCKS_PER_SEC.
lässt man die konstante weg, dann bekommt man millisekunden.nur wenn CLOCKS_PER_SEC 1000 ist. auf 'nem system mit CLOCKS_PER_SEC==50 hast plötzlich anderes verhalten.
-
counter-freak schrieb:
nur wenn CLOCKS_PER_SEC 1000 ist. auf 'nem system mit CLOCKS_PER_SEC==50 hast plötzlich anderes verhalten.
ja, steht bei mir in der time.h mit 1000 drin.
aber gut zu wissen, das es auch anders sein kann.dann schreibe ich besser bei dem nächsten beta release (start-stop)/CLOCKS_PER_SEC*1000