Программирование на C и C++

Онлайн справочник программиста на C и C++

Спецификатор минимума ширины поля

Целое число, помещаемое между знаком % и кодом формата, рассматривается как спецификатор минимума ширины поля. Он добавляет к выводу пробелы для обеспечения некоторой минимальной длины. Если строка чисел длиннее, чем этот минимум, она будет выводиться без отсечений. По умолчанию для достижения необходимой длины строка дополняется пробелами. Если необходимо выводить не пробелы, а нули, следует поставить ноль перед спецификатором ширины поля. Например, %05d будет выводить числа, длиной меньше пяти символов с впереди стоящими нулями, чтобы полная длина была пять. Следующая программа демонстрирует использование спецификатора минимума длины поля:

#include <stdio.h>
int main (void)
{
double item;
item = 10.12304;
printf ("%f\n", item);
printf("%10f\n", item);
printf("%012f\n", item);
return 0;
}

В результате работы данной программы получаем:

10.123040

10.123040

00010.123040

Модификатор минимума ширины поля, как правило, используется для создания таблиц, в которых элементы строк имеют одинаковый отступ. Например, следующая программа создает таблицу квадратов и кубов чисел от 1 до 19:

#include <stdio.h>
int main(void)
{
int i;

/* вывод таблицы квадратов и кубов */
for(i=1; i<20; i++)
printf("%8d %8d %8d\n", i, i*i, i*i*i);
return 0;
}

В результате работы программы получим:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
4
9
16
25
36
49
64
81
100
121
144
169
196
225
256
289
324
361
1
8
27
64
125
216
343
512
729
1000
1331
1728
2197
2744
3375
4096
4913
5832
6859