logo

Especificador de formato C

O especificador Format é uma string usada nas funções de entrada e saída formatadas. A string de formato determina o formato da entrada e da saída. A string de formato sempre começa com um caractere '%'.

Os especificadores de formato comumente usados ​​na função printf() são:

Especificador de formato Descrição
%d ou %i É usado para imprimir o valor inteiro assinado, onde inteiro assinado significa que a variável pode conter valores positivos e negativos.
%em É usado para imprimir o valor inteiro sem sinal, onde o inteiro sem sinal significa que a variável pode conter apenas valores positivos.
%o É usado para imprimir o número inteiro octal sem sinal, onde o valor inteiro octal sempre começa com um valor 0.
%x É usado para imprimir o número inteiro hexadecimal sem sinal, onde o valor inteiro hexadecimal sempre começa com um valor 0x. Neste, os caracteres alfabéticos são impressos em letras minúsculas, como a, b, c, etc.
%X É usado para imprimir o número inteiro hexadecimal sem sinal, mas %X imprime os caracteres alfabéticos em letras maiúsculas, como A, B, C, etc.
%f É usado para imprimir os valores decimais de ponto flutuante. Por padrão, ele imprime os 6 valores após '.'.
%e e É usado para notação científica. Também é conhecido como Mantissa ou Expoente.
%g É utilizado para imprimir os valores decimais de ponto flutuante e utiliza precisão fixa, ou seja, o valor após o decimal na entrada seria exatamente igual ao valor na saída.
%p É usado para imprimir o endereço em formato hexadecimal.
%c É usado para imprimir o caractere não assinado.
%s É usado para imprimir as strings.
%ld É usado para imprimir o valor inteiro com sinal longo.

Vamos entender detalhadamente os especificadores de formato por meio de um exemplo.

    %d
 int main() { int b=6; int c=8; printf('Value of b is:%d', b); printf('
Value of c is:%d',c); return 0; } 

No código acima, estamos imprimindo o valor inteiro de b e c usando o especificador% d.

Saída

Especificador de formato C
    %em
 int main() { int b=10; int c= -10; printf('Value of b is:%u', b); printf('
Value of c is:%u',c); return 0; } 

No programa acima, exibimos o valor de b e c usando um especificador de formato não assinado, ou seja,% u. O valor de b é positivo, então o especificador %u imprime o valor exato de b, mas não imprime o valor de c, pois c contém o valor negativo.

Saída

Especificador de formato C
    %o
 int main() { int a=0100; printf('Octal value of a is: %o', a); printf('
Integer value of a is: %d',a); return 0; } 

No código acima, exibimos o valor octal e o valor inteiro de a.

Saída

Especificador de formato C
    %x e %X
 int main() { int y=0xA; printf('Hexadecimal value of y is: %x', y); printf('
Hexadecimal value of y is: %X',y); printf('
Integer value of y is: %d',y); return 0; } 

No código acima, y ​​contém o valor hexadecimal 'A'. Exibimos o valor hexadecimal de y em dois formatos. Usamos %x e %X para imprimir o valor hexadecimal onde %x exibe o valor em letras minúsculas, ou seja, 'a' e %X exibe o valor em letra maiúscula, ou seja, 'A'.

Saída

Especificador de formato C
    %f
 int main() { float y=3.4; printf('Floating point value of y is: %f', y); return 0; } 

O código acima imprime o valor flutuante de y.

Saída

Especificador de formato C
    %e
 int main() { float y=3; printf('Exponential value of y is: %e', y); return 0; } 

Saída

Especificador de formato C
    %E
 int main() { float y=3; printf('Exponential value of y is: %E', y); return 0; } 

Saída

Especificador de formato C
    %g
 int main() { float y=3.8; printf('Float value of y is: %g', y); return 0; } 

No código acima, exibimos o valor flutuante de y usando o especificador%g. O especificador %g exibe a saída igual à entrada com a mesma precisão.

Saída

Especificador de formato C
    %p
 int main() { int y=5; printf('Address value of y in hexadecimal form is: %p', &y); return 0; } 

Saída

Especificador de formato C
    %c
 int main() { char a='c'; printf('Value of a is: %c', a); return 0; } 

Saída

Especificador de formato C
    %s
 int main() { printf('%s', 'javaTpoint'); return 0; } 

Saída

Especificador de formato C

Especificador de largura mínima de campo

Suponha que queiramos exibir uma saída que ocupe um número mínimo de espaços na tela. Você pode conseguir isso exibindo um número inteiro após o sinal de porcentagem do especificador de formato.

algoritmo de Kruskals
 int main() { int x=900; printf('%8d', x); printf('
%-8d',x); return 0; } 

No programa acima, o especificador %8d exibe o valor após 8 espaços, enquanto o especificador %-8d criará um valor alinhado à esquerda.

Saída

Especificador de formato C

Agora veremos como preencher os espaços vazios. É mostrado no código abaixo:

 int main() { int x=12; printf('%08d', x); return 0; } 

No programa acima, %08d significa que o espaço vazio é preenchido com zeros.

Saída

Especificador de formato C

Especificando precisão

Podemos especificar a precisão usando '.' Operador (ponto) que é seguido por um inteiro e um especificador de formato.

 int main() { float x=12.2; printf('%.2f', x); return 0; } 

Saída

Especificador de formato C