Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Модификаторы формата



Как функция printf(), так и функция scanf() допускают наличие нескольких спецификаторов формата, немного изменяющих ввод.

Спецификаторы формата могут содержать модификатор максимальной длины поля. Это целое число, помещаемое между % и спецификатором формата, ограничивающее число символов, читаемых в поле. Например, для чтения не более 20 символов в str следует написать:

scanf(“%20s”, str);

Если поток ввода содержит более 20 символов, последующее обращение к вводу начнется с места, где было завершено предыдущее обращение. Например, если ввести

ABCDEFGHIJKLMNOPQRSTUVWXYZ

В ответ на запрос функции, приведенной в предыдущем примере, в str поместятся только 20 символов (включая «Т») из-за наличия спецификатора максимальной ширины поля. Это означает, что оставшиеся символы UVWXYZ не были использованы. Если вызвать еще одну scanf(), например:

scanf(“%s”, str);

То буквы UVWXYZ поместятся в str. Вод в поле может окончится до достижения максимальной длины поля, если обнаружится специальный символ. В данном случае scanf() переходит к следующему полю.

Для чтения длинных целых следует поместить l перед спецификатором формата. Для чтения коротких целых следует поместить h перед спецификатором формата. Данные модификаторы могут использоваться с кодами формата d, i, o, u и х.

По умолчанию спецификаторы f, e и g сообщают о необходимости присвоения данной переменной типу float. Если поместить перед одним из этих спецификаторов l, то scanf() присвоит данные типу double. Использование L сообщает о необходимости представления полученных данных как long double.





Дата публикования: 2015-10-09; Прочитано: 188 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...