| 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 |