Ожидание нажатия любой клавиши в программе на C в Windows

В прошлой статье я рассказал как запустить программу написанную на C в ОС Windows, и обратил ваше внимание, что наша первая программа запустится и закроется так быстро что максимум что вы увидите — это мелькнувшее окно консоли. Что же сделать чтобы можно было закрыть программу тогда когда этого хочет пользователь?

Есть несколько вариантов. Первый пришедший в голову — использовать долгий пустой цикл. Однако это решение с большим минусом. Программа все же закроется сама через какое-то время. Иначе закрыть её будет возможно только через стандартные средства Windows.

Второй вариант — это использование функции scanf(). Программа будет ожидать ввода пользователя и нажатия клавиши Enter. Это уже ближе к нашей задаче. Но дополнительное нажатие на Enter портит всю картину.

Однако решение все же есть. Именно для среды Windows можно использовать дополнительные библиотеки которые в консоли отследят нажатие клавиш.

Пример кода:

#include <stdio.h>
#include <conio.h>
#include <ctype.h>

int main(){
    char key;
    printf("Hello World!\n");
    printf("Press any key to exit");
    _getch();
    return 0;
}

Функция _getch() будет ожидать нажатия любой клавиши, и после этого продолжит своё выполнение, т.е. завершится.

На этом в принципе всё. Happy programming!
Поделиться ссылкой: