Compartilhar via


Sintaxe de especificação de formato: funções printf e and wprintf

Descreve a sintaxe para argumentos de cadeia de caracteres de formato a printf, a wprintf, e funções relacionadas.Versões mais seguros dessas funções estão disponíveis; para obter mais informações, consulte Recursos de segurança no CRT.Para obter mais informações sobre funções individuais, consulte a documentação para essas funções específicas.Para uma listagem dessas funções, consulte Fluxo de i/O.

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

%sinalizadoreslargura[] [] [] [.precisão{h | l | ll | w | I | I32 | I64}] tipo

Cada campo da especificação de formato é um caractere ou um número que significa que um determinado especificador de opção ou de conversão de formato.O caractere de type necessário especificar o tipo de conversão a ser aplicada a um argumento.flagsopcional, width, e os aspectos adicionais de formato de controle de campos de precision .Uma especificação de formato básico contém somente o sinal de porcentagem e type caractere- por exemplo, %s, que especifica uma conversão de cadeia de caracteres.Se um sinal de porcentagem é seguido por um caractere que não tem significado como um campo de formato, o caractere é copiado para a saída inalterados.Para imprimir um caractere de percentualmente sinal, use %%.

Os campos de especificação de formato nos seguintes aspectos de conversão e de formatação de argumento:

  • type
    Caractere de necessário especificador de conversão que determina se argument associado é interpretado como um caractere, uma cadeia de caracteres, um número inteiro, ou um número de ponto flutuante.Para obter mais informações, consulte printf caracteres de campo de tipo.

  • flags
    Caractere opcional ou caracteres que controlam a justificativa de saída e a saída dos sinais, as placas de, zeros, de pontos decimais, e prefixos de octal e hexadecimais.Para obter mais informações, consulte Diretivas de sinalizador.Mais de um sinalizador pode aparecer em uma especificação de formato, e os sinalizadores podem aparecer em qualquer ordem.

  • width
    Número decimal opcional que especifica o número mínimo de caracteres que são saída.Para obter mais informações, consulte printf especificação de largura.

  • precision
    Número decimal opcional que especifica o número máximo de caracteres que são impresso para cadeias de caracteres, o número de dígitos significativos ou o número de dígitos após o caractere de ponto decimal para valores de ponto flutuante, ou o número mínimo de dígitos que são impresso para valores inteiros.Para obter mais informações, consulte “como tipo de valores de precisão” em Especificação de precisão.

  • h | l | ll | w | I | I32 | I64
    Prefixos opcionais a type que especifica o tamanho do argumento correspondente.Para mais informações, consulte " tamanho prefixar” em Especificação de tamanho.

Observação de segurançaObservação de segurança

Certifique-se de que as cadeias de caracteres de especificação de formato não estejam definidos pelo usuário.Por exemplo, considere um programa que solicita ao usuário para inserir um nome e armazenar a entrada em uma variável de cadeia de caracteres que é chamado name.Para imprimir name, não faça isso:

printf( name ); /* Danger! If name contains "%s", program will crash */

Em vez disso, faça isso:

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 parâmetros posicional

Diretivas de sinalizador

printf especificação de largura

Especificação de precisão

Especificação de tamanho

printf caracteres de campo de tipo