Scanf()

Функция scanf() — это программа ввода общего назначения, выполняющая ввод с консоли. Она может читать данные всех встроенных типов и автоматически преобразовывать числа в соответствующий внутренний формат, scanf() во многом выглядит как обратная к printf(). Вот прототип функции scanf():

int scanf(const char * управляющая_строка,...);

Эта функция возвращает количество тех элементов данных, которым было успешно присвоено значение. В случае ошибки scanf() возвращает EOF, управляющая_строка определяет преобразование считываемых значений при записи их переменные, на которые указывают элементы списка аргументов.

Управляющая строка состоит из символов трех видов:

  • спецификаторов преобразования,
  • разделителей,
  • символов, не являющихся разделителями.

Теперь поговорим о каждом из этих видов.

Спецификаторы преобразования

Каждый спецификатор формата ввода начинается со знака %, причем спецификаторы формата ввода сообщают функции scanf() тип считываемых данных. Перечень этих кодов (т.е. литер-спецификаторов) приведен в табл. 8.3. Спецификаторам преобразования в порядке слева направо ставятся в соответствие элементы списка аргументов. Рассмотрим некоторые примеры.

Таблица 8.3. Спецификаторы преобразования для функции scanf()
Код Значение
%a Читает значение с плавающей точкой (только С99)
%c Читает одиночный символ
%d Читает десятичное целое число
%i Читает целое число как в десятичном, так и восьмеричном или шестнадцатеричном формате
%e Читает число с плавающей точкой
%f Читает число с плавающей точкой
%g Читает число с плавающей точкой
Читает восьмеричное число
%s Читает строку
%x Читает шестнадцатеричное число
%p Читает указатель
%n Принимает целое значение, равное количеству уже считанных символов
%u Читает десятичное целое число без знака
%[] Читает набор сканируемых символов
%% Читает знак процента

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: