Функции scanf() и cscanf() требуют аккуратного ввода данных с клавиатуры, незначительная ошибка при вводе информации приводит к сбоям в работе программ. В добротных программах используется посимвольный ввод данных с помощью функции getch(), определяемую в той же библиотеке <conio.h>. Эта функция имеет два варианта применения:
а) для остановки программы до нажатия произвольной клавиши, например, перед ее завершением. В этом случае листинг программы может быть таким
{
…
getch(); /* Ожидание ввода произвольной клавиши */
}
б) получение кода ASCII нажатой клавиши. Для получения кода клавиши необходимо объявить целую переменную и присвоить результат исполнения функции getch() этой переменной. При этом синтаксис использования функции может быть следующим:
{
int i;
…
i=getch(); /* Ожидание нажатия клавиши и присвоение
ее кода символа переменной i */
…
}
Пример 3.3
Написать программу, принимающую символ с клавиатуры и выдающую его код на экран
Листинг 3.3
/* программа вывода на экран кода нажатой клавиши */
#include <conio.h>
void main()
{
int kod; /* объявление переменной */
clrscr(); /* очистка экрана */
cprintf(“Нажмите клавишу: ”); /* вывод сообщения */
kod=getch(); /* ввод клавиши */
cprintf(“\nКод клавиши: %d\n”); /* вывод кода клавиши */
getch(); /* ожидание нажатия
произвольной клавиши */
}