Quels sont les différents formats à utiliser avec printf et scanf ?
Les formats de sortie avec printf sont les suivants :
- %d, %i : nombre entier décimal
- %u : nombre entier non signé (unsigned)
- %o : nombre entier octal
- %x : nombre entier hexadécimal (minuscule)
- %X : nombre entier hexadécimal (majuscule)
- %c : caractère ASCII (type char)
- %f : nombre à virgule flottante
- %e, %E : nombre à virgule flottante au format exponentiel
- %g, %G : nombre au format %f ou sinon %e lorsque l'exposant est inférieur à -4
- %s : chaîne de caractères
- %p : pointeur
- %n : pointeur (nombre de caractères déjà donnés)
Remarque :
Selon la man page de printf :
- Les formats %d à %X concernent les variables de type int. Pour les variables de type short, il faut ajouter un h après le % (exemple : %hd) et pour les variables de type long, il faut ajouter, il faut ajouter un l après le % (exemple : %ld).
- Les formats %f à %LG concernent les variables de type float. Pour les variables de type double, il faut ajouter un l après le % (exemple : %lf).
Il se peut toutefois que vous ayez un Warning du genre
"ISO C90 does not support the `%lf' printf format". En effet les formats %lf (nombre à virgule de type double), %hhd (char signé) et %hhu (char non signé) n'existent qu'en C99.
Les formats de saisie à utiliser avec scanf sont les suivants :
- %d, %i : entier décimal de type int
- %hd : entier décimal de type short
- %ld : entier décimal de type long
- %u : entier décimal de type int non signé (unsigned)
- %hu : entier décimal de type short non signé (unsigned short)
- %lu : entier décimal de type long non signé (unsigned long)
- %o : entier octal de type int
- %ho : entier octal de type short
- %lo : entier octal de type long
- %x : entier hexadécimal de type int
- %hx : entier hexadécimal de type short
- %lx : entier héxadécimal de type long
- %c : caractère ASCII (type char)
- %f : nombre à virgule flottante de type float
- %lf : nombre à virgule flottante de type double
- %e, %E : nombre à virgule flottante au format exponentiel de type float
- %le, %LE : nombre à virgule flottante au format exponentiel de type double
- %g, %G : nombre à virgule flottante au format décimal ou exponentiel (lorsque l'exposant est inférieur à -4) de type float
- %lg, %LG : nombre à virgule flottante au format décimal ou exponentiel (lorsque l'éxposant est inferieur à -4) de type double
- %s : chaîne de caractères
- %p : pointeur
- %n : aucune donnée utilisateur (montre le nombre de caractères déjà lus)
Partager