Syntaxe de spécification de format : fonctions printf et wprintf

 

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Décrit la syntaxe des arguments de chaîne de format de printf, wprintf et des fonctions associées. Des versions plus sécurisées de ces fonctions sont disponibles ; pour plus d'informations, consultez Fonctionnalités de sécurité dans le CRT. Pour plus d'informations sur chaque fonction, consultez la documentation de ces fonctions spécifiques. Pour obtenir la liste de ces fonctions, consultez E/S de flux.

Une spécification de format, qui se compose de champs facultatifs et obligatoires, se présente sous la forme suivante :

%[flags] [width] [.precision] [{h | l | ll | w | I | I32 | I64}] type

Chaque champ de la spécification de format est un caractère ou un nombre qui représente un spécificateur d'option ou de conversion de format particulier. Le caractère obligatoire type précise le type de conversion à appliquer à un argument. Les champs facultatifs flags, width et precision contrôlent d'autres aspects de format. Une spécification de format de base contient uniquement le symbole de pourcentage et un caractère type, par exemple, %s, qui spécifie une conversion de chaînes. Dans les versions sécurisées des fonctions, si un signe de pourcentage est suivi d'un caractère qui n'a aucune signification en tant que champ de format, le gestionnaire de paramètres non valides est appelé. Pour plus d'informations, consultez Validation de paramètre. Dans les versions non sécurisées, le caractère est copié dans la sortie sans être modifié. Pour imprimer un caractère de pourcentage, utilisez %%.

Les champs de la spécification de format contrôlent les aspects ci-après de la conversion et de la mise en forme d'argument :

type
Caractère de spécificateur de conversion requis qui détermine si le paramètre argument associé est interprété comme un caractère, une chaîne, un entier ou un nombre à virgule flottante. Pour plus d'informations, consultez Caractères du champ de type printf.

flags
Caractères facultatifs qui contrôlent la justification de sortie et la sortie des signes, espaces, zéros non significatifs, virgules décimales et préfixes octaux et hexadécimaux. Pour plus d'informations, consultez Directives de balise. Plusieurs indicateurs peuvent apparaître dans une spécification de format, et les indicateurs peuvent apparaître dans n'importe quel ordre.

width
Nombre décimal facultatif qui spécifie le nombre minimal de caractères envoyés. Pour plus d'informations, consultez Spécification de largeur printf.

precision
Nombre décimal facultatif qui spécifie le nombre maximal de caractères imprimés pour les chaînes, le nombre de chiffres significatifs ou le nombre de chiffres après le caractère de virgule décimale pour les valeurs à virgule flottante ou le nombre minimal de chiffres imprimés pour les valeurs entières. Pour plus d'informations, consultez « Comment les valeurs de précision affectent le type » dans Spécifications de précision.

h | l | ll | w | I | I32 | I64
Préfixes facultatifs de type qui spécifient la taille de l'argument correspondant. Pour plus d'informations, consultez « Préfixes de taille » dans Spécification de taille.

System_CAPS_ICON_important.jpg Important

Assurez-vous que les chaînes de spécification de format ne sont pas définies par l'utilisateur. Par exemple, imaginez un programme qui invite l'utilisateur à entrer un nom et enregistre l'entrée dans une variable de chaîne nommée name. Pour imprimer name, n'effectuez pas l'opération suivante :

printf( name ); /* Danger! If name contains "%s", program will crash */

Procédez plutôt comme suit :

printf( "%s", name );

printf, _printf_l, wprintf, _wprintf_l
printf_s, _printf_s_l, wprintf_s, _wprintf_s_l
Paramètres positionnels printf_p
Directives de balise
Spécification de largeur printf
Spécifications de précision
Spécification de taille
Caractères du champ de type printf

Afficher: