Инструкции, передаваемые функции printf( )
, когда мы "просим" ее напечатать некоторую переменную, зависят от того, какого типа эта переменная. Например, при выводе на печать целого числа применяется формат %d, а при выводе символа - %с. Ниже перечислены все форматы, указываемые при обращениях к функции printf(), а затем показано, как они используются. Каждому форма ту соответствует тип выводимой (с их помощью) информации, причем первые пять покрывают большинство возникающих потребностей, а остальные четыре применяются достаточно редко.Формат | Тип выводимой информации | ||
---|---|---|---|
%d | Десятичное целое число | ||
%с | Один символ | ||
%s | Строка символов | ||
%е | Число с плавающей точкой, экспоненциальная запись | ||
%f | Число с плавающей точкой, десятичная запись | ||
%g | Используется вместо записей | ||
%f | или %е, если он короче | ||
%u | Десятичное целое число без знака | ||
%о | Восьмеричное целое число без знака | ||
%x | Шестнадцатеричное целое число без знака |
Посмотрим теперь, как эти форматы применяются.
Использование функции printf( )
Приведем программу, иллюстрирующую обсуждаемые вопросы:
Результат выглядит так:
Формат, указываемый при обращении к функции printf( )
, выглядит следующим образом:Аргумент1, Аргумент2
и т. д. - это печатаемые параметры которые могут быть переменными, константами или даже выражениями, вычисляемыми вначале, перед выводом на печать.Управляющая строка
- строка символов, показывающая, как должны быть напечатаны параметры. Например, в операторе:управляющей строкой
служит фраза в кавычках (учитывая предыдущие замечания, это - строка символов), a number и ouzo - аргументы или в данном случае значения двух переменных.
РИС. 4.6. Аргументы функции printf( )
Приведем еще пример:
На этот раз список аргументов содержит только один элемент - символическую константу PI
.Мы видим, что в управляющей строке
содержится информация двух различных видов:1. Символы, печатаемые текстуально.
2. Идентификаторы данных, называемые также "спецификациями преобразования".
РИС. 4.7. Структура управляющей строки
Каждому аргументу из списка, следующего за управляющей строкой, должна соответствовать одна спецификация преобразования
. Горе вам, если вы забудете это основное требование. Никогда не пишите, например, так:3десь отсутствует аргумент для второй спецификации преобразования %d
. Способ проявления этой ошибки целиком зависит от вашей вычислительной системы, но в лучшем случае вы получите бессмыслицу.Если вам нужно напечатать какую-нибудь фразу, то нет необходимости использовать спецификацию преобразования; если же требуется только вывести данные на печать, то можно обойтись и без использования комментария. Поэтому каждый из операторов, приведенных ниже, вполне приемлем.
Заметим, что во втором примере первый аргумент из печатаемого списка является символьной константой, а не переменной.