У меня в настоящее время есть небольшая программа, которую я пишу, которая требует фрагмента кода, который будет ждать х секунд, чтобы узнать, вводит ли пользователь что-либо , и если ввод данных не поступает, то необходимо выполнить еще один код. Такая вещь также будет содержаться в цикле for, так что, как только будет выполнен дополнительный код, он снова ждет конечный период времени для ввода. Если ввод задается с помощью нажатия клавиши, код затем продолжает выполнять другой, но отличается кодом. Первоначально я попытался решить эту проблему, используя петлю while
, <time.h>
clock()
и scanf()
, но безрезультатно. Моя последняя попытка отличается тем, что, но все же не дает желаемого результата. Мой последний код выглядит следующим образом:Наличие C Ожидание конечного количества времени для ввода пользователя перед тем, как перейти к сценарию
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
Я предрек все соответствующие файлы заголовков в верхней части моего сценария, но я теперь озадачен о том, как действовать, и я использую Windows. Любая помощь будет оценена по достоинству.
Большое спасибо
Вы ищете [ 'sleep'] (http://man7.org/linux/man-pages/man3/sleep.3.html)? –
Вы хотите проверить, что пользователь вводит что-то в течение некоторого интервала времени. – sas
Нет, не 'sleep', так как это приостановит выполнение, которое почти то, чего я пытаюсь избежать, так как' fgets' и 'scanf' делают это, но indefinetely. Я предполагаю, что я ищу еще что-то, о чем @sas упомянул, и хочу проверить, ввел ли пользователь что-то в течение интервала времени и прогресс, если нет. – dbr