Функция scanf
Наиболее универсальной функцией, которая позволяет ввести данные с клавиатуры, является функция scanf. В общем виде инструкция вызова функции scanf для ввода значения одной переменной выглядит так:
scanf(Формат,& Переменная);
Где:
- Формат – это строка, которая содержит спецификатор формата, определяющий то, как должна интерпретироваться строка, введенная с клавиатуры.
Наиболее часто используемыми спецификаторами являются: %1 – для ввода целых, %f – для ввода дробных, %s – для ввода строк; - &переменная – это адрес переменной, значение которой вводится. Например, инструкция:
scanf("%i", Skol);
Вводит целое число, а инструкция:
scanf("%i%f", &kol, Scena);
Вводит целое и дробное.
При вызове функции scanf происходит следующее. Программа приостанавливает работу и ждет, пока пользователь наберет на клавиатуре строку символов и нажмет клавишу Enter. До нажатия Enter можно редактировать вводимую строку (например, нажав клавишу Back Space можно удалить последний введенный символ). После нажатия клавиши Enter функция scanf преобразует введенную строку в данные и записывает их в переменную, адрес которой указан. Преобразование выполняется в соответствии со спецификатором формата. Например, в результате выполнения инструкции scanf ("%f", scena) и набора на клавиатуре строки 25.99 значение переменной сеnа будет равно 25.99.
Следует обратить внимание, что при использовании функции scanf наиболее частой ошибкой, причем не обнаруживаемой компилятором, является отсутствие символа & перед именем переменной.
Если введенная пользователем строка не соответствует типу ожидаемых данных – например, программа ждет ввода целого числа, а пользователь ввел дробное, – то функция scanf обрабатывает только ту часть введенной строки, которая может быть преобразована в требуемые данные. Например, в программе для ввода данных о стоимости покупки используется инструкция scanf("%i%f", &kol, scena), которая предполагает, что пользователь введет в одной строке сначала количество предметов, а затем цену предмета. Если во время работы программы вместо строки 3 24.99 (три предмета по 24.99) ввести строку 24.99 3, то значение переменной kol будет равно 24, а переменной сеnа – 99.