Spécificateurs de format printf

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à printf, wprintf


Les spécificateurs de format d'impression ont la forme suivante :

% [flags] [width] [.prec] [F|N|h|l|L] type_char

Chaque spécificateur de format commence par le caractère pourcent (%).

Composants de la chaîne de format facultatifs

Ce sont les aspects généraux du formatage de sortie contrôlés par les caractères, spécificateurs et modificateurs facultatifs de la chaîne de format :


Composant    Facultatif/Obligatoire Définition/Action

[flags]

(Facultatif)

Ces indicateurs peuvent apparaître dans n'importe quel ordre et combinaison.

  • - = Justifie à gauche le résultat, complète sur la droite avec des blancs. Si cet indicateur n'est pas spécifié, justifie à droite le résultat, complète sur la gauche avec des zéros ou des blancs.
  • + = Les résultats de conversion signés commencent toujours par un signe plus (+) ou moins (-).
  • blanc = Si la valeur n'est pas négative, la sortie commence par un blanc au lieu d'un plus ; les valeurs négatives commencent toujours par un moins.
  • # = Spécifie que l'argument est à convertir au moyen d'une autre forme.

Remarque : Plus (+) a priorité sur le blanc () si les deux sont spécifiés.

[width]

(Facultatif)

Le spécificateur de largeur (width) définit la largeur de champ minimale pour une valeur de sortie.

Width est spécifié de deux manières :

  • Directement, par le biais d'une chaîne de chiffres décimaux.
  • Indirectement, par le biais d'un astérisque (*).

Si vous utilisez un astérisque pour le spécificateur de largeur, le prochain argument dans l'appel (qui doit être un int) spécifie la largeur minimale du champ de sortie.

Les largeurs de champ inexistantes ou les petites largeurs de champ ne provoquent pas la troncation d'un champ. Si le résultat d'une conversion est plus large que la largeur du champ, le champ est agrandi afin de contenir le résultat de la conversion.

Comment la largeur de la sortie est affectée

n = Au moins n caractères sont imprimés. Si la valeur de sortie a moins de n caractères, la sortie est complétée par des blancs (sur la droite si l'indicateur est spécifié, sur la gauche sinon).

0n = Au moins n caractères sont imprimés. Si la valeur de sortie a moins de n caractères, elle est remplie sur la gauche par des zéros.

'*' = La liste d'arguments fournit le spécificateur de largeur qui doit précéder l'argument réel formaté.

[prec]

(Facultatif)

Spécificateur de précision. Le nombre maximal de caractères à imprimer ; pour les entiers, le nombre minimal de chiffres à imprimer.

[F|N|h|l|L]

(Facultatif)

Ces modificateurs déterminent comment les fonctions printf interprètent le prochain argument d'entrée, arg[f].

Préfixe Spécificateur de format Type spécifié

F

p s

Un pointeur far

N

n

Un pointeur near

h

d i o u x X

Un short int

l

d i o u x X

Un long int

l

e E f g G

Un double

L

e E f g G

Un long double

L

d i o u x X

Un __int64

h

c C

Un caractère à octet unique

l

c C

Un caractère étendu

h

s S

Une chaîne de caractères à octet unique

l

s S

Une chaîne de caractères étendue

Ces modificateurs affectent la façon dont toutes les fonctions printf interprètent le type de données de l'argument d'entrée correspondant arg. F et N réinterprètent la variable d'entrée arg. Normalement, le arg d'une conversion %p, %s ou %n est un pointeur de la taille par défaut pour le modèle de mémoire. h, l et L redéfinissent la taille par défaut des arguments d'entrée des données numériques. h ou l n'affecte pas les types pointeur (p,n).

type_char

(Obligatoire)

Caractère de type


Voir aussi