Partilhar via


printf caracteres de campo de tipo

Em uma especificação de formato, o caractere de type é um especificador de conversão que especifica se o argumento correspondente deve ser interpretado como um caractere, uma cadeia de caracteres, um ponteiro, um número inteiro, ou um número de ponto flutuante.O caractere de type é o único campo necessário a especificação de formato, e aparece após todos os campos opcionais.

Os argumentos que seguem a cadeia de caracteres de formato são interpretados de acordo com o caractere correspondente de type e o prefixo opcional de tamanho .Conversões de tipos de caracteres char e wchar_t são especificadas usando c ou C, e o único byte e o byte ou várias cadeias de caracteres com são especificados usando s ou S, dependendo da função de formatação está sendo usado.Argumentos de caracteres e de cadeia de caracteres que são especificados usando c e s é interpretado como char e char* por funções da família de printf , ou como wchar_t e wchar_t* por funções da família de wprintf .Argumentos de caracteres e de cadeia de caracteres que são especificados usando C e S é interpretado como wchar_t e wchar_t* por funções da família de printf , ou como char e char* por funções da família de wprintf .

O tipo inteiro como short, int, long, long long, e suas variantes de unsigned , são especificadas usando d, i, o, u, x, e X.Tipos de ponto flutuante como float, double, e long double, são especificados usando a, A, e, E, f, g, e G.Por padrão, a menos que eles sejam modificados por um prefixo de tamanho do campo de size , os argumentos inteiros são forçados para o tipo de int , e os argumentos de ponto flutuante são forçados a double.Em sistemas de 64 bits, int é um valor de 32 bits; como consequência, números inteiros de 64 bits serão truncados quando é formatado para saída a menos que um prefixo de size de ll ou de I64 é usado.Tipos ponteiro que são especificados pelo uso de p o tamanho padrão para a plataforma.

ObservaçãoObservação

C, S, e caracteres de tipo de Z , e o comportamento dos caracteres de tipo de c e de s quando eles são usados com as funções de printf e de wprintf , são extensões da Microsoft e não são ANSI correspondente.Visual C++ não suporta o caractere de tipo de F .

caracteres do campo de tipo de printf

Caractere de tipo

Argumento

Formato de saída

c

Caractere.

Quando usado com printf funciona, especifica um caractere de byte único; quando usado com wprintf funciona, especifica um caractere amplo.

C

Caractere.

Quando usado com printf funciona, especifica um caractere amplo; quando usado com wprintf funciona, especifica um caractere de byte único.

d

Integer

Decimal inteiro com sinal.

i

Integer

Decimal inteiro com sinal.

o

Integer

Octal inteiro sem sinal.

u

Integer

Decimal inteiro sem sinal.

x

Integer

Inteiro sem sinal; hexadecimal usa “abcdef”.

X

Integer

Inteiro sem sinal; hexadecimal usa “ABCDEF”.

e

De ponto flutuante

O valor assinado que tem o formulário [].–ddddd esinal[]dd[d] onde d é um dígito decimal, dddd é um ou mais dígitos decimais, é dd[d] dois ou três dígitos decimais segundo formato de saída e o tamanho do expoente, e o sinal é + - ou.

E

De ponto flutuante

Idêntico ao formato exceto que a E de e em vez de e apresenta o expoente.

f

De ponto flutuante

Valor com sinal que tem o formulário [].–dddddddd, onde é dddd um ou mais dígitos decimais.O número de dígitos antes do ponto decimal depende do valor de número, e o número de dígitos após o ponto decimal depende de precisão solicitada.

g

De ponto flutuante

Os valores assinados são exibidos em f ou no formato de e , qualquer é mais compacta para o valor e a precisão dados.O formato de e é usado somente quando o expoente do valor é menor que 4 – ou maior ou igual ao argumento de precision .Zeros à direita são truncados, e o ponto decimal aparece apenas se um ou mais dígitos o seguir.

G

De ponto flutuante

Idêntico ao formato de g , exceto que a E, em vez de e, apresenta o expoente (onde for apropriado.)

a

De ponto flutuante

O valor de ponto flutuante de precisão dupla hexadecimal assinado que tem o formulário [] −0xh.hhhhdd, onde h.hhhh são os dígitos hex (usando letras minúsculas) da mantissa, e dd são um ou mais dígitos para o expoente.A precisão especifica o número de dígitos após o ponto.

A

De ponto flutuante

O valor de ponto flutuante de precisão dupla hexadecimal assinado que tem o formulário [] −0Xh.hhhhdd, onde h.hhhh são os dígitos hex (usando letras) da mantissa, e dd são um ou mais dígitos para o expoente.A precisão especifica o número de dígitos após o ponto.

n

Ponteiro para o inteiro

Número de caracteres que são gravados com êxito até agora o fluxo ou ao buffer.Esse valor é armazenado inteiro em cujo endereço é dado como o argumento.Consulte a observação de segurança posteriormente neste artigo.

p

Tipo ponteiro

Exibe o argumento como um endereço em dígitos hexadecimais.

s

Cadeia de caracteres

Quando usado com funções de printf , especifica uma cadeia de caracteres de byte único ou de vários byte; quando usado com wprintf funciona, especifica uma cadeia de caracteres de largo- caractere.Os caracteres são exibidos até o primeiro caractere nulo ou até precision o valor é alcançado.

S

Cadeia de caracteres

Quando usado com printf funciona, especifica uma cadeia de caracteres de largo- caractere; quando usado com funções de wprintf , especifica uma cadeia de caracteres de byte único ou de vários bytes.Os caracteres são exibidos até o primeiro caractere nulo ou até precision o valor é alcançado.

Z

ANSI_STRING ou estrutura de UNICODE_STRING

Quando o endereço ANSI_STRING do ou UNICODE_STRING estrutura é passado como o argumento, exibe a cadeia de caracteres que está contida em buffer que é apontada pelo campo de Buffer estrutura.Use um prefixo modificadoras de comprimento de w para especificar UNICODE_STRING argumento- por exemplo, %wZ.O campo de Length estrutura deve ser definido para o tamanho, em bytes, da cadeia de caracteres.O campo de MaximumLength estrutura deve ser definido para o tamanho, em bytes, do buffer.

Normalmente, o caractere de tipo de Z é usado somente no driver que a depuração funções que usa uma especificação de formato, como dbgPrint e kdPrint.

Se o argumento correspondente a um especificador de ponto flutuante de conversão é infinito indefinido, ou, NAN a tabela a seguir lista as saídas formatados.

Valor

Saída

+ infinito

1.#INFaleatório dígitos

– infinito

– 1.#INFaleatório dígitos

Indefinido (o mesmo que NaN quieto)

digit.#INDrandom-digits

NAN

digit.#NANrandom-digits

ObservaçãoObservação

Se o campo do Buffer do argumento correspondente a %Z, ou do argumento correspondente a %s ou a %S, é um ponteiro zero, “(zero)” será exibido.

ObservaçãoObservação

Em todos os formatos exponenciais padrão, o número de dígitos do expoente para exibir é três.Usando a função de _set_output_format , você pode definir o número de dígitos exibidos a dois mas a expanda a três se exigido pelo tamanho do expoente.

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

Porque o formato de %n é inerentemente certeza, é desativado por padrão.Se %n está localizado em uma cadeia de caracteres de formato inválido, o manipulador do parâmetro é chamado, como descrito em Validação de parâmetro.Para ativar o suporte de %n , consulte _set_printf_count_output.

Consulte também

Referência

printf, _printf_l, wprintf, _wprintf_l

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

Diretivas de sinalizador

printf especificação de largura

Especificação de precisão

Especificação de tamanho

_set_output_format