English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de linguagem C

Controle de fluxo de linguagem C

Funções no C

Matrizes no C

Ponteiro no C

String no C

Estrutura de linguagem C

Arquivo de linguagem C

Outros C

Manual de referência do C

Instruções de conversão do sinalizador C

O sinalizador de formatação é uma string usada nas funções de entrada e saída formatadas. A string de formatação determina o formato da entrada e saída. A string de formatação sempre começa com o caractere "%%".

1. Instruções de conversão de sinalizador e saída como resultado

Instruções de conversão

Saída

%a

Número decimal de ponto flutuante, números hexadecimais e p-Sistema de numeração (C99)

%A

Número decimal de ponto flutuante, números hexadecimais e P-Sistema de numeração (C99)

%c

Um caractere

%d

Número inteiro de ponto decimal

%e

Número decimal de ponto flutuante, e-Sistema de numeração

%E

Número decimal de ponto flutuante, E-Sistema de numeração

%f

Número decimal de ponto flutuante

%g

Escolhe automaticamente %f ou %e com base no valor numérico. O formato %e é usado quando o expoente é menor-4ou usar quando maior ou igual à precisão

%G

Escolhe automaticamente %f ou %E com base no valor numérico. O formato %E é usado quando o expoente é menor-4ou usar quando maior ou igual à precisão

%i

Número inteiro de ponto decimal (igual a %d)

%o

inteiro octal sem sinal

%p

ponteiro (ou seja, endereço)

%s

string

㩵n

inteiro decimal sem sinal

%%x

inteiro hexadecimal sem sinal usando o número hexadecimal 0f

%%X

inteiro hexadecimal sem sinal usando o número hexadecimal 0F

%%

imprime um sinal de porcentagem

dois, printf() modificador

Modificador

Significado

sinais

cinco sinais (-e+e 0) serão descritos na tabela três, podem ser usados zero ou mais sinais

digit(s)

valor mínimo da largura do campo. Se o campo não puder conter o número ou string a ser impresso, o sistema usará um campo mais amplo. Exemplo: "4d”

.digit(s)

precisão. Para as conversões %%e, %%E e %%f, é o número de dígitos a ser impresso à direita do ponto decimal. Para as conversões %%g e %%G, é o número máximo de dígitos significativos. Para a conversão %%s, é o número máximo de caracteres a serem impressos. Para as conversões de inteiros, é o número mínimo de dígitos a serem impressos; se necessário, usar zeros à esquerda para alcançar esse número de dígitos. Usa-se apenas "."indica que segue um zero, então %%f é equivalente a %%0f. Exemplo: "5.2imprime um número flutuante, cuja largura do campo é5f

caracteres, com dois números após o ponto decimal.

usado junto com o sinal de conversão de inteiro, para representar umh long int short int unsigned char

unsigned short int6.4Exemplo: "%%hu", "%%hx" e "

hh

usado junto com o sinal de conversão de inteiro, para representar umhd long intsigned charunsigned char

valor do tipo.6.4Exemplo: "%%hhu", "%%hhx" e "

%%hhd" e "

j

usado junto com o sinal de conversão de inteiro, para representar um valor intmax_t ou uintmax_t.8Exemplo: "%%jd" e "

jX

lul long intou unsigned long int

valor do tipo.8Exemplo: "%%ld" e "

ll

luusado junto com o sinal de especificação de inteiro, para representar umlong long int ou unsigned long long int99)

valor do tipo (C8%%llu" e "

L

usado junto com o sinal de conversão de ponto flutuante, para representar umlong doublevalor.

Exemplo: "%%Lf" e "%%"10.4Le

t

usado junto com o sinal de conversão de inteiro, para representar um valor ptrdiff_t (o tipo correspondente à diferença entre dois ponteiros) (C99)

Exemplo: "%%td" e "%%12ti"

z

usado junto com o sinal de conversão de inteiro, para representar umsize_tvalor(sizeof retorna o tipo) (C99)

Exemplo: "%%zd" e "%%12"zx"

três do printf()

Modificador

Significado

-

O projeto está alinhado à esquerda, o que significa que os projetos serão impressos no início da coluna do campo. Exemplo: "%%"-20s

+

Se o valor sinalizado for positivo, ele será exibido com um sinal de mais; se for negativo, ele será exibido com um sinal de menos. Exemplo: “%”+6.2f”

(espaço)

Se o valor sinalizado for positivo, ele será exibido com um espaço à esquerda (mas não será exibido o sinal); se for negativo, ele será exibido com um sinal de menos.+O sinal será sobreposto ao sinal de espaço. Exemplo: “%” 6.2f”

#

Use a forma opcional do sinal de conversão. Se for o formato %o, comece com 0; se for o formato %x e %X, comece com 0x ou 0X, para todos os formatos de ponto flutuante, # garante que seja impresso um ponto decimal, mesmo que não haja números. Para os formatos %g e %G, ele impede que zeros não significativos sejam removidos. Exemplo: “%#o”, “%#”8.0f” e “%+#10.3E”

0

Para todos os formatos numéricos, preencha o campo com zeros à esquerda em vez de espaços. Se ocorrer-Se houver um sinal ou especificado a precisão (para inteiros) então ignore esse sinal. Exemplo: “%010d” e “%08.3f”

Quatro, os sinais de conversão de scanf() no ANSI C

Sinal de conversão

Significado

%c

Interprete a entrada como um caractere

%d

Interprete a entrada como um inteiro decimal sinalizado

%e, %f, %g, %a

Interprete a entrada como um número flutuante (%a é C99Padrão)

%E, %F, %G, %A

Interprete a entrada como um número flutuante (%A é C99Padrão)

%i

Interprete a entrada como um inteiro decimal sinalizado

%o

Interprete a entrada comoSinalizadoNúmero octal

%p

Interprete a entrada como um ponteiro (endereço)

%s

㩵n

Interprete a entrada como um inteiro decimal não sinalizado

%x, %X

Interprete a entrada comoSinalizadoInteiros hexadecimais

Cinco, os modificadores de conversão de scanf()

Modificador

Significado

*

Atribuição em atraso. Exemplo: “%”*d”

digit(s)

Largura máxima do campo; pare de ler o item de entrada quando atingir a largura máxima do campo ou encontrar o primeiro caractere branco (o que ocorrer primeiro, seja qual for)。10s”

hh

Leia o inteiro como signed char ou unsigned char. Exemplo: “%hhd”“%hhu”

ll

Leia o inteiro como long long ou unsigned long long (C99)。Exemplo: “%lld”“%llu”

h, l ou L

“%hd” e “%hi” indicam que o valor será armazenado em um short int.

“%ho”“%hx” e “%hu” indicam que o valor será armazenado em um unsigned short int.

“%ld” e “%li” indicam que o valor será armazenado em um long.

“%lo”“%lx” e “%lu” indicam que o valor será armazenado em um unsigned long.

“%le”“%lf” e “%lg” indicam que o valor é armazenado como tipo double. Use L (ao invés de l) com e, f e g para indicar que o valor é armazenado como tipo long double.

Se não houver esses modificadores, d, i, o e x indicam o tipo int, enquanto e, f e g indicam o tipo float.