Ich habe derzeit ein kleines Programm, das ich schreibe, die für ein Stück Code, der x Sekunden warten wird, um zu sehen, ob der Benutzer nichts eingibt und wenn keine Eingabe gegeben wird, wird weiter Code ausgeführt. Solch ein Ding wäre auch in einer for-Schleife enthalten, so dass, sobald der weitere Code ausgeführt worden ist, es die endliche Zeitperiode für die Eingabe erneut wartet. Wenn die Eingabe über einen Tastendruck erfolgt, fährt der Code mit der Ausführung von weiterem, aber abweichendem Code fort. Zunächst habe ich versucht, dies unter Verwendung einer while
Schleife, <time.h>
's clock()
und scanf()
zu lösen, aber ohne Erfolg. Mein letzter Versuch unterscheidet sich etwas, aber immer noch nicht das gewünschte Ergebnis. Mein neuester Code ist wie folgt:C warten auf eine begrenzte Zeit für eine Benutzereingabe, bevor Sie mit dem Skript weitergehen
int c;
char check[10];
for(c=0;c<1000;++c){
//do something
int end=time(0)+(1);
while(time(0)<end){
fgets(check,10,stdin);
if(*check=='\n'){
break;
}
}
//do the other stuff
if(*check!='\n'){
break;
}
}
//even more stuff
ich alle relevanten Dateien Kopfzeile oben erklärt habe, von meinem Skript, aber jetzt bin ratlos, wie zu verfahren und ich Windows benutze. Jede Hilfe wäre willkommen.
Vielen Dank
Sie sind auf der Suche nach [ 'sleep'] (http://man7.org/linux/man-pages/man3/sleep.3.html)? –
Möchten Sie überprüfen, ob der Benutzer etwas innerhalb eines Zeitintervalls eingegeben hat. – sas
Nein, nicht "schlafen", denn das würde die Ausführung anhalten, was ich fast zu vermeiden versuche, wie 'fgets' und' scanf' das tun unbestimmt. Ich nehme an, ich suche mehr, was @sas erwähnt hat und möchte überprüfen, ob der Benutzer etwas in einem Zeitintervall eingegeben hat und Fortschritt wenn nicht. – dbr