Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
139
Добавлен:
13.03.2016
Размер:
470.02 Кб
Скачать

1.3.2. Функция форматного выводаprintf()

Оператор вызова этой функции имеет вид:

printf(форматная_строка,список_вывода)

Список вывода содержит перечисленные через запятую имена выводимых переменных, т. е. показывает, чтовыводить. В список вывода можно включать не только переменные, но и произвольные выражения (в частном случае константы).

Форматная строка показывает, в каком виде значения переменных будут выведены на экран. В простейшем случае форматная строка - это строковая константа, т. е. она ограничена двойными кавычками (см. п.1.2.3). Форматная строка может содержать:

  1. произвольный текст (обычно он поясняет значения выводимых переменных); среди символов этого текста могут быть и управляющие; в несложных программах этого пособия часто будет использоваться управляющий символ '\n'(перевод строки - п.1.2.3);

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

В простейшем виде спецификация формата имеет вид:

%ширина_поля.точность спецификатор

Ширина поля- положительное целое число, задающее минимальное количество позиций, занимаемых выводимым значением; если число символов в выводимом значении меньше, чем ширина поля, то выводимое значение дополняется пробелами до минимальной длины; если число символов в выводимом значении больше ширины поля или ширина поля не задана, то печатаются все символы значения (ширина поля игнорируется).

Точность - положительное целое число, указывается в основном для вещественных чисел, означая в этом случае количество выводимых после десятичной точки цифр.

На первых этапах обучения программированию достаточно следующих спецификаторов:

d - для целых значений (типовint, char, unsigned);

f- для вещественных значений (типовfloat, double);

e - для вещественных значений (типовfloat, double)с указанием порядка, т. е. в виде:

знак_числаm.ddddeзнак_порядкаxxx,

где m.dddd - изображение мантиссы числа;m- одна десятичная цифра;dddd- последовательность десятичных цифр;е- признак порядка (десятичного);xxx - десятичные цифры для представления порядка числа.

c- для одиночного символа (типовint, char, unsigned);

s- для строк.

Cполным набором спецификаторов языка Си можно ознакомиться, например, в[2].

Пример.

float s; int a,b;...

printf("a=%2d b=%4d\n s=%4.1\n", a,b,s);

На экран будет выведена информация в виде:

a=<a> b=<b>

s=<s>

Здесь конструкция <имя переменной>означает значение этой переменной. Заметим, что следующие значения будут выводиться с новой строки, так как форматная строка заканчивается символом'\n'. Такое схематичное изображение выводимой (или вводимой) информации называетсяформой вывода (ввода).

Если a=-2, b=93, s=3.22, то на экране получим:

a=-2 b= 93

s= 3.2

Другие примеры оператора printf() представлены на рис.1.