type de caractères printf de champ

Dans une spécification de format, le caractère d' type est un spécificateur de conversion qui spécifie si l'argument correspondant doit être interprète comme un caractère, chaîne, pointeur, entier, ou nombre à virgule flottante.Le caractère d' type est le seul champ obligatoire de spécification de format, et il apparaît après tous les champs facultatifs.

Les arguments qui suivent la chaîne de format sont interprètes en fonction de le caractère correspondant d' type et le préfixe facultatif d' taille .Les conversions des types de caractères char et wchar_t sont spécifiées à l'aide de c ou C, et codé sur un octet et multioctet ou des chaînes à caractères larges sont spécifiés à l'aide de s ou d' S, selon lequel la fonction de mise en forme est utilisée.Caractère et arguments de chaîne qui sont spécifiés à l'aide de c et s sont interprètes comme char et char* par la famille d' printf s'exécute, ou comme wchar_t et wchar_t* par la famille d' wprintf s'exécute.Caractère et arguments de chaîne qui sont spécifiés à l'aide de C et S sont interprètes comme wchar_t et wchar_t* par la famille d' printf s'exécute, ou comme char et char* par la famille d' wprintf s'exécute.

Les types entiers comme short, int, long, long long, et les variantes d' unsigned, sont spécifiés à l'aide de d, d' i, d' o, d' u, d' x, et d' X.Les types à virgule flottante tels qu' float, double, et long double, sont spécifiés à l'aide de a, d' A, d' e, d' E, d' f, d' g, et d' G.Par défaut, sauf s'ils sont modifiés par un préfixe de longueur de champ d' size, les arguments entiers sont convertis en type d' int, et des arguments à virgule flottante sont convertis à double.Sur les systèmes 64 bits, int est une valeur 32 bits ; par conséquent, les entiers 64 bits sont tronqués lorsqu'ils sont mis en forme pour la sortie à moins qu'un préfixe d' size d' ll ou d' I64 est utilisé.Types pointeur qui sont spécifiés par l'utilisation d' p la longueur par défaut pour la plateforme.

[!REMARQUE]

C, S, et caractères de type d' Z, et le comportement des caractères de type d' c et d' s lorsqu'ils sont utilisés avec les fonctions d' printf et d' wprintf, sont des extensions Microsoft et ne sont pas ANSI compatible.Visual C++ ne prend pas en charge le caractère de type d' F .

type de caractères printf de champ

Caractère de type

Argument

Format de sortie

c

Caractère

En cas de utilisation avec printf s'exécute, spécifie un caractère codé sur un octet ; en cas de utilisation avec wprintf s'exécute, spécifie un caractère large.

C

Caractère

En cas de utilisation avec printf s'exécute, spécifie un caractère élargi ; en cas de utilisation avec wprintf s'exécute, spécifie un caractère codé sur un octet.

d

Entier

Entier décimal signé.

i

Entier

Entier décimal signé.

o

Entier

Entier octal non signé.

u

Entier

Entier décimal non signé.

x

Entier

Entier hexadécimal non signé ; utilise « abcdef ».

X

Entier

Entier hexadécimal non signé ; utilise « ABCDEF ».

e

Virgule flottante

La valeur signée ayant le format [–]d.dddd e[signe]dd[d] où d est un chiffre décimal, dddd est un ou plusieurs chiffres décimaux, dd[d] est deux ou trois chiffres décimaux en fonction format de sortie et la taille de l'exposant, et le signe est + ou -.

E

Virgule flottante

Identique au format sauf qu'à E d' e plutôt qu' e présente l'exposant.

f

Virgule flottante

Valeur signée ayant le format [–]dddd.dddd, où dddd est un ou plusieurs chiffres décimaux.Le nombre de chiffres avant que la virgule décimale dépend de la grandeur du nombre, et le nombre de chiffres après la virgule décimale dépend de la précision demandée.

g

Virgule flottante

Les valeurs signés sont affichées dans f ou le format d' e, celui qui est plus compact pour la valeur et la précision données.Le format d' e est utilisé uniquement lorsque l'exposition de la valeur est inférieure à 4 ou supérieur ou égal à l'argument d' precision .Les zéros de fin sont tronqués, et la virgule décimale s'affiche uniquement si un ou plusieurs chiffres la suivent.

G

Virgule flottante

Identique au format d' g, sauf qu'à E, plutôt qu' e, tapez l'exposant (le cas échéant).

a

Virgule flottante

La valeur à virgule flottante double précision hexadécimale signée ayant la forme [−]0xh.hhhhdd, où h.hhhh sont les chiffres hexa (en utilisant les lettres minuscules) de la mantisse, et l' dd sont un ou plusieurs chiffres dans l'exposant.La précision indique le nombre de chiffres après le point.

A

Virgule flottante

La valeur à virgule flottante double précision hexadécimale signée ayant la forme [−]0Xh.hhhhdd, où h.hhhh sont les chiffres hexa (avec des majuscules) de la mantisse, et l' dd sont un ou plusieurs chiffres dans l'exposant.La précision indique le nombre de chiffres après le point.

n

Pointeur vers l'entier

Nombre de caractères qui sont correctement écrits jusqu'à présent au flux ou à la mémoire tampon.Cette valeur est stockée dans un entier dont l'adresse est fournie en tant qu'argument.Voir la remarque sur la sécurité ultérieurement dans cet article.

p

Type de pointeur

Affiche l'argument comme adresse dans les chiffres hexadécimaux.

s

Chaîne

En cas de utilisation avec des fonctions d' printf, spécifie une chaîne codée sur un octet ou multioctette ; en cas de utilisation avec wprintf s'exécute, spécifie une chaîne à caractères larges.Les caractères sont affichés jusqu'au premier caractère Null ou jusqu'à precision la valeur est atteinte.

S

Chaîne

En cas de utilisation avec printf s'exécute, spécifie une chaîne à caractères larges ; en cas de utilisation avec des fonctions d' wprintf, spécifie une chaîne codée sur un octet ou multioctette.Les caractères sont affichés jusqu'au premier caractère Null ou jusqu'à precision la valeur est atteinte.

Z

ANSI_STRING ou structure d' UNICODE_STRING

Lorsque l'adresse ANSI_STRING de l'ou UNICODE_STRING de la structure est passée comme argument, affiche la chaîne contenue dans la mémoire tampon qui est pointée pointe vers le champ d' Buffer de la structure.Utilisez un préfixe de modificateur de longueur d' w pour spécifier UNICODE_STRING argument- pour l'exemple, %wZ.Le champ d' Length de la structure doit être défini à la longueur, en octets, de la chaîne.Le champ d' MaximumLength de la structure doit être défini à la longueur, en octets, de la mémoire tampon.

En général, le caractère de type d' Z est utilisé uniquement dans le pilote que le débogage fonctions qui utilisent une spécification de format, telle qu' dbgPrint et kdPrint.

Si l'argument correspondant à un spécificateur à virgule flottante de conversion est l'infini, indéfini, ou numérique, le tableau suivant répertorie la sortie mise en forme.

Valeur

Sortie

+ infinity

1.#INFaléatoire-chiffres

– infinity

– 1.#INFaléatoire-chiffres

Indéfini (identique à) Non tranquille

digit. #INDrandom-chiffres

NAN

digit. #NANrandom-chiffres

[!REMARQUE]

Si le le champ d' Buffer de l'argument qui correspond à %Z, ou de l'argument correspondant à %s ou à %S, est un pointeur null, « (null) » s'affiche.

[!REMARQUE]

Dans tous les formats exponentiels, le nombre par défaut de chiffres dans l'exposant à afficher est trois.À l'aide de la fonction d' _set_output_format, vous pouvez définir le nombre de chiffres affichés à deux mais à développer à trois si requis par la taille de l'exposant.

Note de sécuritéNote de sécurité

Étant donné que le format d' %n est fondamentalement non sécurisé, il est désactivé par défaut.Si %n est produit dans une chaîne de format, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Pour activer la prise en charge d' %n, consultez _set_printf_count_output.

Voir aussi

Référence

printf, _printf_l, wprintf, _wprintf_l

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

Directives de balise

spécification de la largeur de printf

Spécification de précision

Spécification de taille

_set_output_format