Поделиться через


Спецификация ширины printf

В спецификации формата второе необязательное поле — это спецификация ширины. Аргумент width — неотрицательное целое десятичное число, управляющее минимальным количеством выходных символов. Если количество знаков в выходном значении ниже заданной ширины, к значению слева или справа будут добавлены пробелы, в зависимости от того, определен ли флаг выравнивания по левому краю (-), в количестве, необходимом, чтобы достичь минимальной ширины. Если width имеет префикс 0, то начальные нули добавляются к целому числу или числу с плавающей запятой при преобразовании до тех пор, пока не будет достигнута минимальная ширина, кроме случаев преобразования в бесконечность или NAN.

Спецификация ширины никогда не вызывает отбрасывание значения. Если количество знаков в выходном значении больше определенной ширина или если width не указан, то все символы значения считаются выходными в соответствии со спецификацией точность.

Если спецификация ширины — звездочка (*), аргумент int из списка аргументов предоставляет значение. Аргумент width должен предшествовать форматируемому значению в списке аргументов как показано в следующем примере:

printf("%0*f", 5, 3); /* 00003 is output */

Отсутствующее или небольшое значение width в спецификации формата не приводит к усечению выходного значения. Если результат преобразования превышает значение width, поле расширяется, чтобы вместить результат преобразования.

См. также

Ссылки

printf, _printf_l, wprintf, _wprintf_l

Синтаксис описания формата: функции printf и wprintf

Директивы флагов

Спецификация точности

Спецификация размера

Символы поля типа printf