Рассмотрим использование функции getch()
в C/C+, которая позволяет прочитать ввод символов с клавиатуры.
Основной синтаксис
Хотя это не является частью стандарта C, но это все же функция POSIX C. Таким образом, мы все еще можем использовать эту функцию в Windows/Linux/Mac.
Ниже мы рассмотрим использование этой функции на нескольких примерах, а сам синтаксис функции довольно простой.
Эта функция принимает один символ из стандартного входа (stdin
) и возвращает целое число.
Она является частью заголовочного файла <conio.h>
, поэтому мы должны включить ее в свою программу.
См. по теме:
- Директива #include в C/C++ с примерами
- #include (директива) в справочнике C++
#include <conio.h>
int getch();
Эта функция не принимает никаких параметров.
Здесь getch()
возвращает значение ASCII символа, считанного из stdin
.
Например, если мы введем символ 0 в качестве входа, программа вернет значение ASCII 0, которое равно 49.
Теперь в C/C++ мы можем напрямую преобразовать символ в целое число. Таким образом, при приведении типов, значение ASCII 49 будет приведено к значению символа 0.
Давайте теперь посмотрим на некоторые примеры.
Примеры использования getch()
В качестве простого примера давайте сначала рассмотрим чтение одного символа.
#include <stdio.h>
#include <conio.h>
int main() {
char ch = getch();
printf("Вы ввели: %c\n", ch);
return 0;
}
Вывод:
Вы ввели: a
Мы получим такой вывод после того, как нажмем «а» на своей клавиатуре.
Теперь посмотрим на программу, которая ждет 5 символов с клавиатуры.
Давайте отобразим полную строку только после того, как получим все 5 символов.
#include <stdio.h>
#include <conio.h>
int main() {
// задаем op = {0, 0, 0, 0, 0, 0} = '\0\0\0\0\0\0' string
char op[6] = {0};
for (int i=0; i<5; i++) {
op[i] = getch();
}
printf("Принято 5 символов: %s\n", op);
return 0;
}
Вывод:
Принято 5 символов: Hello
Таким образом, когда мы набираем "Hello", мы получаем правильный вывод.
Обратите внимание, что в выходной строке 6 символов, так как нам нужно зарезервировать 1 байт для '\0', т.е. op
будет "Hello\0".
Мы узнали как использовать функцию getch()
в C / C++ для получения символьного ввода с клавиатуры. Для получения более подробной информации о Си и Си++ вы можете посмотреть наш раздел по программированию на С++.