Articolo originale: https://www.freecodecamp.org/news/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:
f
Identificatore di formato stringa %s
:
#include <stdio.h>
int main() {
char str[] = "freeCodeCamp";
printf("%s\n", str);
return 0;
}
Output:
freeCodeCamp
Immissione 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:
Y
Input 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:
fCC
Identificatori 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
2020
Identificatori 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+01
Identificatore di formato intero ottale %o
:
#include <stdio.h>
int main() {
int num = 31;
printf("%o\n", num);
return 0;
}
Output:
37
Identificatore di formato intero esadecimale %x
:
#include <stdio.h>
int main() {
int c = 28;
printf("%x\n", c);
return 0;
}
Output:
1c