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:
fEspecificador de formatação de string %s:
#include <stdio.h>
int main() {
char str[] = "freeCodeCamp";
printf("%s\n", str);
return 0;
} Resultado:
freeCodeCampEntrada 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:
YEntrada 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:
fCCEspecificadores 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
2020Especificador 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+01Especificador de formatação de inteiro octal %o:
#include <stdio.h>
int main() {
int num = 31;
printf("%o\n", num);
return 0;
}Resultado:
37Especificador de formatação de inteiro hexadecimal %x:
#include <stdio.h>
int main() {
int c = 28;
printf("%x\n", c);
return 0;
} Resultado:
1c