Язык программирования C

Скачать в pdf «Язык программирования C»


■    спецификации ввода, состоящие из знака %; необязательного символа *, запрещающего присваивание; необязательной ширины поля; необязательного символа h, 1 или L, угочняющего размер заполняемой переменной; и самого символа формата.


Спецификация ввода определяет преобразование следующего поля ввода. Обычно результат помещается в переменную, на которую указывает соответствующий аргумент. Но если присваивание запрещено с помощью знака *, как, например, в спецификации %*s, то поле ввода пропускается и никакого присваивания не происходит. Поле ввода — это строка символов, отличных от символов пустого пространства; ввод прекращается, как только встретится символ пустого пространства или как только исчерпается заданная ширина поля (если она задана). Из этого следует, что scanf может переходить через границы строк, поскольку символ новой строки является символом пустого пространства. (В число которых также входят символы пробела, табуляции, конца строки, возврата каретки, вертикальной табуляции и прогона страницы.)


Символ формата задает способ интерпретации поля ввода. Соответствующий аргумент должен быть указателем. Список допустимых символов формата приводится в табл. Б.2.


Перед символами формата d, i, п, о, и и х может стоять h, если аргумент— указатель на short, а не int, или 1, если аргумент является указателем на long. Символам формата е, f ид может предшествовать 1, если аргумент— указатель на double, а не float, или L, если аргумент — указатель на long double.


Таблица Б.2. Спецификации ввода функции scanf


Символ Входные данные и тип аргумента 4 5


Символ Входные данные и тип аргумента


s    Строка символов, отличных от пустого пространства (без кавычек); параметр типа char * должен


указывать на массив достаточного размера, чтобы вместить строку и добавляемый к ней символ ‘о •

Скачать в pdf «Язык программирования C»