Especificação de largura printf
Em uma especificação de formato, o segundo campo opcional é a especificação de largura. O argumento de width é um inteiro decimal não negativo que controla o número mínimo de caracteres que são geradas. Se o número de caracteres no valor de saída é menor do que a largura especificada, os espaços em branco são adicionadas à esquerda ou à direita da dependência sobre se o sinalizador esquerdo do alinhamento (-) é especificar- até que a largura mínima é atingida. Se width é prefixado por 0, os zeros à esquerda serão adicionados ao inteiro ou as conversões de ponto flutuante até que a largura mínima seja alcançada, exceto quando a conversão é a uma infinito ou a um NAN.
A especificação de largura nunca causa um valor a ser truncado. Se o número de caracteres no valor de saída é maior que a largura especificada, ou se width não for fornecido, todos os caracteres de valor são saída, sujeitam a precisão a especificação.
Se a especificação de largura é um asterisco (*), um argumento de int da lista de argumento fornece o valor. O argumento de width deve preceder o valor que está sendo formatado na lista de argumentos, conforme mostrado neste exemplo:
printf("%0*f", 5, 3); /* 00003 is output */
Ausente ou um valor pequeno de width em uma especificação de formato não causam truncamento de um valor de saída. Se o resultado de uma conversão é mais amplo que o valor de width , o campo é expandida para conter o resultado da conversão.
Consulte também
Referência
printf, _printf_l, wprintf, _wprintf_l
Sintaxe de especificação de formato: funções printf e and wprintf