Как считать нажатие клавиш в c++?

Пользователь

от sherwood_littel , в категории: C/C++ , 7 месяцев назад

Как считать нажатие клавиш в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от lori_jast , 7 месяцев назад

@sherwood_littel 

В C++ есть несколько способов обработки нажатий клавиш на клавиатуре. Рассмотрим наиболее распространенные из них.

  1. С помощью функции getch()


Функция getch() из библиотеки <conio.h> позволяет считать нажатую клавишу без необходимости нажимать Enter. Например:

1
2
3
4
5
6
7
8
#include <iostream>
#include <conio.h>

int main() {
    char ch = getch();
    std::cout << "Вы нажали клавишу: " << ch << std::endl;
    return 0;
}


  1. С помощью функции getchar()


Функция getchar() из библиотеки <stdio.h> также позволяет считать нажатую клавишу, но в отличие от getch() требует нажатия Enter. Например:

1
2
3
4
5
6
7
8
#include <iostream>
#include <stdio.h>

int main() {
    char ch = getchar();
    std::cout << "Вы нажали клавишу: " << ch << std::endl;
    return 0;
}


  1. С помощью цикла while и функции kbhit()


Функция kbhit() из библиотеки <conio.h> проверяет, была ли нажата клавиша, и возвращает ненулевое значение, если да. Совместно с циклом while можно реализовать бесконечный цикл, который будет обрабатывать нажатия клавиш. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include <iostream>
#include <conio.h>

int main() {
    while (true) {
        if (kbhit()) {
            char ch = getch();
            std::cout << "Вы нажали клавишу: " << ch << std::endl;
        }
    }
    return 0;
}


Обратите внимание, что при использовании функций getch() и kbhit() необходимо подключить заголовочный файл <conio.h>, который может быть не доступен на всех компьютерах.