Artigo original: Format Specifiers in C
Os especificadores de formatação definem o tipo de dados a ser impresso no resultado padrão. Você precisa usar especificadores de formatação se estiver imprimindo resultado formatado com printf()
ou se estiver aceitando uma entrada com scanf()
.
Alguns dos especificadores % que você pode usar em ANSI C são:
ESPECIFICADOR | USADO PARA |
---|---|
%c | um único caractere |
%s | uma string |
%hi | short (com sinal) |
%hu | short (sem sinal) |
%Lf | long double |
%n | sem impressão |
%d | um inteiro decimal (assume a base 10) |
%i | um decimal inteiro (detecta a base automaticamente) |
%o | um inteiro octal (base 8) |
%x | um inteiro hexadecimal (base 16) |
%p | um endereço (ou pointer) |
%f | um número de ponto flutuante para floats |
%u | int decimal sem sinal |
%e | um número de ponto flutuante em notação científica |
%E | um número de ponto flutuante em notação científica |
%% | o símbolo % |
Exemplos:
Especificador de formatação de caractere único %c
:
#include <stdio.h>
int main() {
char first_ch = 'f';
printf("%c\n", first_ch);
return 0;
}
Resultado:
f
Especificador de formatação de string %s
:
#include <stdio.h>
int main() {
char str[] = "freeCodeCamp";
printf("%s\n", str);
return 0;
}
Resultado:
freeCodeCamp
Entrada de caracteres com o especificador de formatação %c
:
#include <stdio.h>
int main() {
char user_ch;
scanf("%c", &user_ch); // user inputs Y
printf("%c\n", user_ch);
return 0;
}
Resultado:
Y
Entrada de strings com o especificador de formatação %s
:
#include <stdio.h>
int main() {
char user_str[20];
scanf("%s", user_str); // user inputs fCC
printf("%s\n", user_str);
return 0;
}
Resultado:
fCC
Especificadores de formatação de inteiros decimais %d
e %i
:
#include <stdio.h>
int main() {
int found = 2015, curr = 2020;
printf("%d\n", found);
printf("%i\n", curr);
return 0;
}
Resultado:
2015
2020
Especificador de formatação de número de ponto flutuante %f
e %e
:
#include <stdio.h>
int main() {
float num = 19.99;
printf("%f\n", num);
printf("%e\n", num);
return 0;
}
Resultado:
19.990000
1.999000e+01
Especificador de formatação de inteiro octal %o
:
#include <stdio.h>
int main() {
int num = 31;
printf("%o\n", num);
return 0;
}
Resultado:
37
Especificador de formatação de inteiro hexadecimal %x
:
#include <stdio.h>
int main() {
int c = 28;
printf("%x\n", c);
return 0;
}
Resultado:
1c