getch
Функция getch нужна для чтения одного символа с клавиатуры, этот символ на экран не выводится. Чаще всего данная функция используется чтобы не дать консоли преждевременно закрыться. Эта функция ожидает пока пользователь введёт символ и лишь затем закрывает консоль.
Чтобы воспользоваться функцией getch, необходимо подключить заголовочный файл:
Следует отметить, что данная функция не является стандартной! Данная функция является альтернативной формой команды getchar. Главной отличительной чертой является то, что вызывая getchar, консоль ожидает подтверждения ввода нажатием Enter. В случае с getch выход происходит сразу же, как только нажата какая-то клавиша. Возвращается код этой клавиши.
Для примера рассмотрим код с этой функцией:
Getch – вводит символ с консоли
Функция getch читает один символ, непосредственно с консоли, без вывода его на экран.
Возвращаемое значение
Функция getch возвращает введенный с клавиатуры символ.
Переносимость
Функция уникальна для DOS. Функция не совместима с Windows.
Пример
#include #include int main(void)
Как работает функция getch() в C/C++
В этой статье мы рассмотрим использование функции getch() в C/C++ .
Данная функция позволяет прочитать введенные с клавиатуры символы.
Она не является частью стандарта C, однако все же является функцией POSIX C. Следовательно, мы можем использовать эту функцию на Windows/Linux/Mac.
Давайте рассмотрим использование этой функции на нескольких примерах.
Базовый синтаксис getch() в C/C++
Эта функция принимает один символ из стандартного ввода (stdin) и возвращает целое число.
Она используется как часть заголовочного файла , поэтому вы должны включить его в свою программу.
#include int getch();
Эта функция не принимает никаких параметров.
Здесь функция getch() возвращает значение ASCII символа, считанного со стандартного ввода.
Например, если мы зададим символ 0 в качестве входных данных, она вернет значение ASCII для этого символа, что равно 49.
Таким образом, теперь мы можем напрямую преобразовывать символ в целое число в C/C++. А при приведении типов значение 49 будет преобразовано в значение char, равное 0.
Давайте теперь рассмотрим пару примеров.
Примеры использования getch() в C/C++
Начнем с простого примера: давайте сначала рассмотрим чтение одного символа.
#include #include int main() char ch = getch(); printf("Received Input: %c\n", ch); return 0; >
Вы получите такой результат:
Received Input: a
Мы получили этот вывод после того, как набрали символ а на клавиатуре. Давайте теперь посмотрим на программу, которая принимает 5 символов с клавиатуры.
Обратите внимание, что getch() не отображает ввод с клавиатуры. Следовательно, когда вы вводите символы, курсор не будет отображать ввод.
Давайте отобразим полную строку только после того, как мы получим все 5 символов:
#include #include int main() // Set op = = '#include #include int main() // Set op = = '\0\0\0\0\0\0' string char op[6] = 0>; for (int i=0; i5; i++) op[i] = getch(); > printf("Received 5 character Input: %s\n", op); return 0; >#include #include int main() // Set op = = '\0\0\0\0\0\0' string char op[6] = 0>; for (int i=0; i5; i++) op[i] = getch(); > printf("Received 5 character Input: %s\n", op); return 0; >#include #include int main() // Set op = = '\0\0\0\0\0\0' string char op[6] = 0>; for (int i=0; i5; i++) op[i] = getch(); > printf("Received 5 character Input: %s\n", op); return 0; >#include #include int main() // Set op = = '\0\0\0\0\0\0' string char op[6] = 0>; for (int i=0; i5; i++) op[i] = getch(); > printf("Received 5 character Input: %s\n", op); return 0; >#include #include int main() // Set op = = '\0\0\0\0\0\0' string char op[6] = 0>; for (int i=0; i5; i++) op[i] = getch(); > printf("Received 5 character Input: %s\n", op); return 0; >#include #include int main() // Set op = = '\0\0\0\0\0\0' string char op[6] = 0>; for (int i=0; i5; i++) op[i] = getch(); > printf("Received 5 character Input: %s\n", op); return 0; >' string char op [ 6 ] = < 0 >; for ( int i = 0 ; i < 5 ; i ++) < op [ i ] = getch (); >printf ( "Received 5 character Input: %s\n" , op ); return 0 ; >
Вывод будет таким:
Received 5 character Input: Hello
Как видите, набрав Hello, мы получили правильный вывод.
Обратите внимание, что в выходной строке задано 6 символов, так как нам нужно зарезервировать 1 байт для «\0». Потому op имеет значение «Hello\0».
Заключение
В этой статье вы узнали, как использовать функцию getch() в C/C++ для получения ввода символов с клавиатуры.
int getche(void)
Функция getch() возвращает очередной символ, считанный с консоли, но не выводит этот символ на экран.
Функция getche() возвращает очередной символ, считанный с консоли, и выводит этот символ на экран.
Ни одна из этих функций не определена стандартом ANSI С.
В этом фрагменте getch ( ) используется для считывания выбора пользователя для программы проверки орфографии.
do {
printf ( "1: Check spelling \n " ) ;
printf ( "2: Correct spelling \n " ) ;
printf ( "3: Look up a word in the dictionary \n " ) ;
printf ( "4: Quit \n " ) ;
printf ( " \n Enter your selection: " ) ;
choice = getch ( ) ;
} while ( ! strchr ( "1234" , choice ) ) ;