Zeitbegrenzte eingabe
-
Guten tag
Wie kann ich eine Zeitbegrenzte Eingabe machen??
Soll heissen, wie funktioniert es, dass der Benutzer z.B. nur 10 Sekunden zeit hat etwas einzugeben.
Wenn er es nicht schafft soll einfach weitergemacht werden...Geht das überhaupt mit C??
mfg 08mmarte
-
Vielleicht so in etwa?
int main() { clock_t c=clock(); char s[1024]={0}; char *ps=s; while((clock()-c)/CLOCKS_PER_SEC<10) { if(_kbhit()) { *ps++=getch(); printf("%c",*(ps-1)); } } printf("\n\nZeit abgelaufen! Eingegeben wurde \"%s\"",s); getchar(); }
-
Ja, genau so etwas habe ich gesucht...danke.
Hier wartet es zehn Sekunden, liege ich da richtig??
-
08mmarte schrieb:
Ja, genau so etwas habe ich gesucht...danke.
Hier wartet es zehn Sekunden, liege ich da richtig??Jepp!
-
Noch ne weitere Frage dazu...funktioniert das auch irgendwie mit Millisekunden??
mfg 08mmarte
-
Du arbeitest mit der WinAPI, richtig? Dann nimm z.B. GetTickCount.
-
Mit clock gehts so (aus der MSDN):
// Pauses for a specified number of milliseconds. void sleep( clock_t wait ) { clock_t goal; goal = wait + clock(); while( goal > clock() ) ; }
Hier noch eine interessante Auflistung von Windows-Timing-Funktionen und deren Auflösung (der Artikel ist zwar auf VB bezogen, das ist aber egal):
-
hmm...werde ich sofort versuchen...
-
_matze schrieb:
// Pauses for a specified number of milliseconds. void sleep( clock_t wait ) ...
ich würde ja die funktion nicht 'sleep' sondern 'burn_cpu_cycles' nennen.