Articolo originale: Format Specifiers in C
Gli identificatori di formato definiscono il tipo di dati da stampare sull'output standard. È necessario utilizzare gli identificatori di formato sia che si stampi l'output formattato con printf() e sia che si accetti l'input con scanf().
Alcuni degli identificatori % che puoi utilizzare in ANSI C sono i seguenti:
| SPECIFICATORE | USATO PER |
|---|---|
| %c | un unico carattere |
| %s | una stringa |
| %hi | short (con segno) |
| %hu | short (senza segno) |
| %Lf | long double |
| %n | non stampa nulla |
| %d | un intero decimale (si assume base 10) |
| %i | un numero intero decimale (rileva automaticamente la base) |
| %o | un intero ottale (in base 8). |
| %x | un intero esadecimale (base 16) |
| %p | un indirizzo (o puntatore) |
| %f | un numero in virgola mobile per i float |
| %u | int decimale senza segno |
| %e | un numero in virgola mobile in notazione scientifica |
| %E | un numero in virgola mobile in notazione scientifica |
| %% | il simbolo % |
Esempi:
Identificatore di formato a carattere singolo %c:
#include <stdio.h>
int main() {
char first_ch = 'f';
printf("%c\n", first_ch);
return 0;
} Output:
fIdentificatore di formato stringa %s:
#include <stdio.h>
int main() {
char str[] = "freeCodeCamp";
printf("%s\n", str);
return 0;
} Output:
freeCodeCampImmissione di caratteri con l'identificatore di formato %c:
#include <stdio.h>
int main() {
char user_ch;
scanf("%c", &user_ch); // l'utente inserisce Y
printf("%c\n", user_ch);
return 0;
} Output:
YInput stringa con l'identificatore di formato %s:
#include <stdio.h>
int main() {
char user_str[20];
scanf("%s", user_str); // l'utente inserisce fCC
printf("%s\n", user_str);
return 0;
} Output:
fCCIdentificatori di formato intero decimale %d e %i:
#include <stdio.h>
int main() {
int found = 2015, curr = 2020;
printf("%d\n", found);
printf("%i\n", curr);
return 0;
} Output:
2015
2020Identificatori di formato dei numeri in virgola mobile %f e %e:
#include <stdio.h>
int main() {
float num = 19.99;
printf("%f\n", num);
printf("%e\n", num);
return 0;
}Output:
19.990000
1.999000e+01Identificatore di formato intero ottale %o:
#include <stdio.h>
int main() {
int num = 31;
printf("%o\n", num);
return 0;
}Output:
37Identificatore di formato intero esadecimale %x :
#include <stdio.h>
int main() {
int c = 28;
printf("%x\n", c);
return 0;
} Output:
1c