Целое число, помещаемое между знаком % и кодом формата, рассматривается как спецификатор минимума ширины поля. Он добавляет к выводу пробелы для обеспечения некоторой минимальной длины. Если строка чисел длиннее, чем этот минимум, она будет выводиться без отсечений. По умолчанию для достижения необходимой длины строка дополняется пробелами. Если необходимо выводить не пробелы, а нули, следует поставить ноль перед спецификатором ширины поля. Например, %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 |