Campos de especificação de formato: Funções de printf e wprintf

Este tópico descreve a sintaxe para especificações de formato de campos, usados em printf, wprintf e funções relacionadas. Mais versões seguras dessas funções estão disponível, consulte printf_s, _printf_s_l, wprintf_s, _wprintf_s_l. Para obter detalhes sobre as funções individuais, consulte a documentação para essas funções específicas.Para obter uma listagem completa dessas funções, consulte Fluxo de E/S.

Uma especificação de formato que consiste em campos obrigatórios e opcionais, tem a seguinte forma:

%[flags] [width] [.precision] [{h | l | ll | I | I32 | I64}tipo

Cada campo da especificação do formato é um único caractere ou um número, significando tratar uma opção de formato particular.A especificação de formato mais simples contém apenas o sinal de porcentagem e um type caractere (por exemplo, %s). Se um sinal de porcentagem for seguido de um caractere que não tem significado sistema autônomo um campo formato, o caractere será copiado para stdout. Por exemplo, para imprimir um caractere de sinal de porcentagem, use %%.

sistema autônomo campos opcionais, que aparecem antes o type caractere, controle outros aspectos da formatação, sistema autônomo segue:

  • type
    Caracteres necessário determina se o associadoargumenté interpretado sistema autônomo um caractere, uma seqüência de caracteres ou um número (consulte a tabela "printf digitar caracteres de campo" printf digitar caracteres de campo).

  • flags
    Opcional caractere ou caracteres que controlam a justificação de saída e a impressão de sinais, espaços em branco, vírgulas Decimal e prefixos octais e hexadecimais (consulte a tabela "Caracteres sinalizar"sinalizar de diretivas). Mais de um sinalizar pode aparecer em uma especificação de formato.

  • width
    Número opcional que especifica o número mínimo de caracteres de saída (consulte Especificação de largura de printf).

  • precision
    Número opcional que especifica o número máximo de caracteres impressos para todo ou parte do campo de saída ou o número mínimo de dígitos impresso para valores inteiros (consulte a tabela "Como Precision valores afetam tipo"Especificação de precisão).

  • h| l| ll| I| I32| I64
    Prefixos opcionaistype-que especifique o dimensionar do argument(consulte a tabela "Prefixos de dimensionar" dimensionar e a especificação de distância).

Observação de segurança:

Certifique-se de que a especificação de formato cadeias de caracteres não são definidos pelo usuário.Por exemplo, considere um programa que solicita que o usuário digite seu nome e armazena a entrada em uma variável de seqüência denominada name.Para imprimir name, não faça isso:

printf( name ); // Danger!  If name contains "%s", program will crash
Observação:

Em vez disso, faça o seguinte:

printf( "%s", name );

Consulte também

Referência

printf, _printf_l, wprintf, _wprintf_l

printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

printf_p posicional parâmetros