Спецификация ширины printf
В спецификации формата второе необязательное поле — это спецификация ширины. Аргумент width — неотрицательное целое десятичное число, управляющее минимальным количеством выходных символов. Если количество знаков в выходном значении ниже заданной ширины, к значению слева или справа будут добавлены пробелы, в зависимости от того, определен ли флаг выравнивания по левому краю (-), в количестве, необходимом, чтобы достичь минимальной ширины. Если width имеет префикс 0, то начальные нули добавляются к целому числу или числу с плавающей запятой при преобразовании до тех пор, пока не будет достигнута минимальная ширина, кроме случаев преобразования в бесконечность или NAN.
Спецификация ширины никогда не вызывает отбрасывание значения. Если количество знаков в выходном значении больше определенной ширина или если width не указан, то все символы значения считаются выходными в соответствии со спецификацией точность.
Если спецификация ширины — звездочка (*), аргумент int из списка аргументов предоставляет значение. Аргумент width должен предшествовать форматируемому значению в списке аргументов как показано в следующем примере:
printf("%0*f", 5, 3); /* 00003 is output */
Отсутствующее или небольшое значение width в спецификации формата не приводит к усечению выходного значения. Если результат преобразования превышает значение width, поле расширяется, чтобы вместить результат преобразования.
См. также
Ссылки
printf, _printf_l, wprintf, _wprintf_l