Spécificateur | Caractères à interpréter et type de l'argument | Compléments ou exemple |
%d
%hd (pour short*) |
entier
sous forme décimale int* |
Possibilité de préciser une
largeur de champ maximale ex: %4d pour un entier sur au plus 4 caractères. |
%i
%hi (pour short*) |
entier sous forme décimale ou sous
forme octale (précédé par 0) ou hexa
(précédé par 0x ou 0X) int* |
idem |
%u
%hu (pour short*) |
entier non signé sous forme
décimale int* |
idem |
%o
%ho (pour short*) |
entier sous forme octale
(précédé ou non par 0) int* |
idem |
%x
%hx (si arg short*) |
entier sous forme hexadécimale
(précédé ou non par 0x ou 0X); int* |
idem |
%c (pour arg char *) | caractère (caractère
d'espacement aussi); char* |
Possibilité de lire n
caractères consécutifs et de les ranger dans des
char
contiguës Ex : %5c reconnait 5 caractères |
%s | chaîne de caractères (sans
guillemets, et sans caractères d'espacement (un
'\0' est ajouté a la fin de l'argument) char* |
%10s : chaîne d'au plus 9 caractères |
%e, %f,
%g
%le, %lf, %lg |
nombre en virgule flottante
float* |
|
%p | pointeur comme l'imprimerait printf
(%p); void* |
|
%n | écrit dans l'argument, le nombre de
caractères lus jusque là par scanf int* |
Ne lit aucune
donnée en entrée et n'incrémente pas
le nombre d'objets
convertis |
%[..] | reconnait la plus longue chaîne de
caractères (non vide) en entrée,
composée de caractères faisant partie de
l'ensemble entre crochets (un '\0' est ajouté a la fin de
l'argument) char* |
[0-9] identifie tout chiffre. [a-k] identifie les lettres comprises entre a et k. []..] permet de reconnaitre également le caractère ] |
%[^..] | reconnait la plus longue chaîne de
caractères (non vide) en entrée,
composée de caractères ne faisant pas partie de
l'ensemble entre crochets (un
'\0' est ajouté a la fin de l'argument) char* |
[^0-9] identifie tout caractère
different d'un chiffre. [^a-k] identifie tout caractère sauf les lettres comprises entre a et k. [^]..] permet d'ajouter ] aux caractères à ne pas reconnaitre. |
%* (suivi de l'un des spécificateurs ci-dessus) | reconnait la donnée correspondant au spécificateur précisé, et l'ignore | |
% | ne réalise aucune affectation |