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ç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