Вы можете использовать kbhit()
, который проверяет, была ли нажата клавиша, перед фиксацией функции блокировки getch()
. L oop ниже использует clock()
для проверки тайм-аута.
#include <conio.h>
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#define TIMEOUT 5 // seconds
int main(void)
{
clock_t tstart = clock();
int v1 = 'y'; // default key press
while((clock() - tstart) / CLOCKS_PER_SEC < TIMEOUT) {
if(kbhit()) {
v1 = getch();
break;
}
}
if(tolower(v1) == 'y')
printf("Example\n");
return 0;
}
Это особенно полезно в игре, где вы не хотите сидеть и ждать нажатия клавиши, а затем нет. не так прост в использовании. Когда вы нажимаете функциональную клавишу или клавишу курсора getch()
, возвращает два последовательных символа, первым является значение «escape», которое необходимо проверить.