Syntaxe de spécification de format : fonctions printf et wprintf
Décrit la syntaxe des arguments de chaîne de format à printf, à wprintf, et aux fonctions associées.Les versions sécurisées de ces fonctions sont disponibles ; pour plus d'informations, consultez Fonctionnalités de sécurité du CRT.Pour plus d'informations sur les différentes fonctions, consultez la documentation pour les fonctions spécifiques.Pour obtenir la liste de ces fonctions, consultez E/S de flux.
Une spécification de format, qui se compose de facultatif et les champs obligatoires, a la forme suivante :
%[balises] [largeur] [.précision] [{h | l | ll | w | I | I32 | I64}] type
Chaque champ de la spécification du format est un caractère ou un nombre qui signifie un spécificateur particulier d'option de mise en forme ou de conversion.Le caractère obligatoire d' type spécifie le type de conversion d'être appliquée à un argument.flagsfacultatif, width, et les aspects supplémentaires de format de contrôle de champs d' precision .Une spécification de format de base contient uniquement le signe de pourcentage et type caractère- pour l'exemple, %s, qui spécifie une conversion de chaînes.Si un signe de pourcentage est suivi d'un caractère qui n'a aucune signification comme champ de format, le caractère est copié vers la sortie inchangé.Pour imprimer un signe de pourcentage, utilisez %%.
Les champs de la spécification du format contrôlent les aspects suivants de la conversion et le format d'argument :
type
Caractère obligatoire de spécificateur de conversion qui détermine si argument associé est interprète comme un caractère, chaîne, entier, ou nombre à virgule flottante.Pour plus d'informations, consultez type de caractères printf de champ.flags
Caractère facultatif ou caractères qui justification de sortie de la commande et de sortie des signes, des espaces, les zéros non significatifs, des virgules décimales, et les préfixes octaux et hexadécimaux.Pour plus d'informations, consultez Directives de balise.Plusieurs balises peuvent apparaître dans une spécification de format, et les balises peuvent apparaître dans n'importe quel ordre.width
Nombre décimal facultatif qui spécifie le nombre minimal de caractères qui sont sortis.Pour plus d'informations, consultez spécification de la largeur de printf.precision
Nombre décimal facultatif qui spécifie le nombre maximal de caractères qui sont 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 qui sont imprimés pour les valeurs entières.Pour plus d'informations, consultez « comment les valeurs de précision affectent le type » dans Spécification de précision.h | l | ll | w | I | I32 | I64
Préfixes facultatifs à type qui spécifient la taille de l'argument correspondant.Pour plus d'informations, consultez " taille préfixe » dans Spécification de taille.
Note de sécurité |
---|
Assurez-vous que les chaînes de spécification de format ne sont pas définies par l'utilisateur.Par exemple, considérez un programme qui invite l'utilisateur à entrer un nom et enregistrer l'entrée dans une variable chaîne nommée name.Pour imprimer name, n'effectuez pas cette opération : printf( name ); /* Danger! If name contains "%s", program will crash */ Au lieu de cela, procédez comme suit : printf( "%s", name ); |
Voir aussi
Référence
printf, _printf_l, wprintf, _wprintf_l
printf_s, _printf_s_l, wprintf_s, _wprintf_s_l
paramètres positionnels de printf_p