English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Caractère de format C

Les caractères de format sont des chaînes utilisées dans les fonctions d'entrée et de sortie formatées. La chaîne de format détermine le format de l'entrée et de la sortie. La chaîne de format commence toujours par le caractère '%'.

一、Explications des caractères de format et de sortie en tant que résultat

Explications de conversion

Sortie

%a

Nombre en virgule flottante, nombres hexadécimaux et p-Méthode de numération (C99)

%A

Nombre en virgule flottante, nombres hexadécimaux et P-Méthode de numération (C99)

%c

Un caractère

%d

Entier à décimales signées

%e

Nombre en virgule flottante, e-Méthode de numération

%E

Nombre en virgule flottante, E-Méthode de numération

%f

Nombre en virgule flottante, méthode décimale

%g

Sélection automatique de %f ou %e selon la valeur numérique. Le format %e est utilisé lorsque l'exponent est inférieur-4ou utiliser lorsque la précision est égale ou supérieure

%G

Sélection automatique de %f ou %E selon la valeur numérique. Le format %E est utilisé lorsque l'exponent est inférieur-4ou utiliser lorsque la précision est égale ou supérieure

%i

Entier à décimales signées (identique à %d)

%o

entier octal sans signe

%p

pointeur (c'est-à-dire l'adresse)

%s

chaîne

㩵n

entier décimal sans signe

%%x

entier hexadécimal sans signe en utilisant le nombre hexadécimal 0f

%%X

entier hexadécimal sans signe en utilisant le nombre hexadécimal 0F

%%

imprime un pourcentage

deux : les modificateurs printf()

Préfixe

Signification

signes

cinq signes (-+et 0) seront décrits dans le tableau 3, et peuvent être utilisés un ou plusieurs signes

digit(s)

valeur minimale de la largeur de champ. Si le champ ne peut pas contenir le nombre ou la chaîne à imprimer, le système utilise un champ plus large. Exemple : "4d”

.digit(s)

précision. Pour les conversions %%e, %%E et %%f, c'est le nombre de chiffres à imprimer après le point décimal. Pour les conversions %%g et %%G, c'est le nombre maximum de chiffres significatifs. Pour la conversion %%s, c'est le nombre maximum de caractères à imprimer. Pour les conversions entières, c'est le nombre minimum de chiffres à imprimer ; si nécessaire, des zéros devant sont utilisés pour atteindre ce nombre. Seul."représente qu'il suit un zéro, donc %%f est équivalent à %%0f. Exemple : "5.2f” imprime un nombre à virgule flottante, avec une largeur de champ5un caractère, avec deux chiffres après la virgule.

h

utilisé avec les indicateurs de conversion entiers pour représenter unshort int ou unsigned short int valeur de type.

Exemple : "%%hu", "%%hx" et "%%"6.4hd

hh

utilisé avec les indicateurs de conversion entiers pour représenter unsigned char ouunsigned charvaleur de type.

Exemple : "%%hhu", "%%hhx" et "%%"6.4hhd”

j

utilisé avec les indicateurs de conversion entiers pour représenter une valeur intmax_t ou uintmax_t.

Exemple : "%%jd" et "%%"8jX”

l

utilisé avec les indicateurs de conversion entiers pour représenter unelong int ouunsigned long int valeur de type.

Exemple : "%%ld" et "%%"8lu

ll

utilisé avec les indicateurs de conversion entiers pour représenter unelong long intou unsigned long long int valeur de type (C99)

Exemple : "%%lld" et "%%"8%%llu”

L

utilisé avec les indicateurs de conversion en virgule flottante pour représenter unelong doublevaleur.

Exemple : "%%Lf" et "%%"10.4Le

t

utilisé avec les indicateurs de conversion entiers pour représenter une valeur ptrdiff_t (correspondant au type de la différence entre deux pointeurs) (C99)

Exemple : "%%td” et "%%12ti”

z

utilisé avec les indicateurs de conversion entiers pour représenter unsize_tvaleur(sizeof renvoie le type) (C99)

Exemple : "%%zd” et "%%12zx”

trois de l'indicateur printf()

Préfixe

Signification

-

Le projet est aligné à gauche, ce qui signifie que le projet sera imprimé au début de la zone de champ. Exemple: "%%"-20s

+

Si la valeur signée est positive, affichez le signe plus ; si elle est négative, affichez le signe moins.+6.2f”

(espace)

Si la valeur signée est positive, affichez-le avec un espace de préfixe (mais sans afficher le signe) ; si elle est négative, affichez le signe moins.+Les indicateurs couvrent l'indicateur d'espace. Exemple : “% 6.2f”

#

Utiliser la forme optionnelle des indicateurs de conversion. Pour le format %o, commence par 0 ; pour les formats %x et %X, commence par 0x ou 0X, pour tous les formats flottants, # garantit que même sans nombre, un point décimal est imprimé. Pour les formats %g et %G, il empêche la suppression des zéros en fin de nombre. Exemple : “%#o”, “%#”,8.0f” et “%+#10.3E”

0

Pour tous les formats numériques, remplir la largeur du champ avec des zéros à la place des espaces. Si il y a-Les indicateurs ou spécifiant l'exactitude (pour les entiers) ignorent cet indicateur. Exemple : “%010d” et “%08.3f”

Quatre : les indicateurs de conversion de scanf() en ANSI C

Indicateur de conversion

Signification

%c

Interpréter l'entrée comme un caractère

%d

Interpréter l'entrée comme un entier décimal signé

%e, %f, %g, %a

Interpréter l'entrée comme un nombre flottant (%a est C99Standard)

%E, %F, %G, %A

Interpréter l'entrée comme un nombre flottant (%A est C99Standard)

%i

Interpréter l'entrée comme un entier décimal signé

%o

Interpréter l'entrée comme unSignéNombre octal

%p

Interpréter l'entrée comme un pointeur (adresse)

%s

㩵n

Interpréter l'entrée comme un entier décimal sans signe

%x, %X

Interpréter l'entrée comme unSignéEntier hexadécimal

Cinq : les modificateurs de conversion de scanf()

Préfixe

Signification

*

Affectation en arrière-plan. Exemple : “%”*d”

digit(s)

Largeur maximale du champ ; arrêter la lecture de l'entrée lorsque la largeur maximale du champ est atteinte ou lorsque le premier caractère blanc est rencontré (quelle que soit la première à se produire)。10s”

hh

Lire un entier comme signed char ou unsigned char . Exemple : “%hhd”“%hhu”

ll

Lire un entier comme long long ou unsigned long long (C99) Exemple : “%lld”“%llu”

h, l ou L

“%hd” et “%hi” indiquent que la valeur sera stockée dans un short int.

“%ho”“%hx” et “%hu” indiquent que la valeur sera stockée dans un unsigned short int.

“%ld” et “%li” indiquent que la valeur sera stockée dans un long.

“%lo”“%lx” et “%lu” indiquent que la valeur sera stockée dans un unsigned long.

“%le”“%lf”和“%lg”指示该值以double类型存储。将L(而非小写的l)与e、f和g一起使用指示该值以long double类型存储。

如果没有这些修饰符,d、i、o和x指示int类型,而e、f和g指示float类型。e、f和g与l(而非小写的L)一起使用指示该值以long double类型存储。