Я пытаюсь написать программу, в которой число начинается с 0, но когда вы нажимаете любую клавишу, она увеличивается на 1. Если ничего не нажимается, оно продолжает уменьшаться на 1 секунду, пока не достигнет 0. Каждое приращение или декремент отображается в окне консоли.
Проблема с моим подходом заключается в том, что ничего не происходит, пока я не getch() клавишу (то есть, она проверяет, нажата ли что-либо с помощью getch()). Как проверить, что ничего не нажата? И, конечно же, !getch() не работает, потому что для этого все равно нужно будет проверить keypress, который сводит на нет цель.
ОС: Windows 10 Enterprise, IDE: Код :: Блоки
void main()
{
int i, counter = 0;
for (i = 0; i < 1000; i++)
{
delay(1000);
// if a key is pressed, increment it
if (getch())
{
counter += 1;
printf("\n%d", counter);
}
while (counter >= 1)
{
if (getch())
{
break;
}
else
{
delay(1000);
counter--;
printf("\n%d", counter);
}
}
}
}