printf Width Specification
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Visual Studio 2017 Documentation. In a format specification, the second optional field is the width specification. The width
argument is a non-negative decimal integer that controls the minimum number of characters that are output. If the number of characters in the output value is less than the specified width, blanks are added to the left or the right of the values—depending on whether the left alignment flag (-
) is specified—until the minimum width is reached. If width
is prefixed by 0, leading zeros are added to integer or floating-point conversions until the minimum width is reached, except when conversion is to an infinity or NAN.
The width specification never causes a value to be truncated. If the number of characters in the output value is greater than the specified width, or if width
is not given, all characters of the value are output, subject to the precision specification.
If the width specification is an asterisk (*
), an int
argument from the argument list supplies the value. The width
argument must precede the value that's being formatted in the argument list, as shown in this example:
printf("%0*f", 5, 3); /* 00003 is output */
A missing or small width
value in a format specification does not cause the truncation of an output value. If the result of a conversion is wider than the width
value, the field expands to contain the conversion result.
See Also
printf, _printf_l, wprintf, _wprintf_l
Format Specification Syntax: printf and wprintf Functions
Flag Directives
Precision Specification
Size Specification
printf Type Field Characters