English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Bibliothèque standard en C - <stdio.h>
C 库函数 int printf(const char *format, ...) 发送格式化输出到标准输出 stdout。
printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);
下面是 printf() 函数的声明。
int printf(const char *format, ...)
format -- 这是字符串,包含了要被写入到标准输出 stdout 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format 标签属性是 %[flags][width][.precision][length]specifier,具体讲解如下:
格式字符 | 意义 |
---|---|
d | 以十进制形式输出带符号整数(正数不输出符号) |
o | 以八进制形式输出无符号整数(不输出前缀0) |
x,X | 以十六进制形式输出无符号整数(不输出前缀Ox) |
u | 以十进制形式输出无符号整数 |
f | 以小数形式输出单、双精度实数 |
e,E | 以指数形式输出单、双精度实数 |
g,G | 以%f或%e中较短的输出宽度输出单、双精度实数 |
c | 输出单个字符 |
s | 输出字符串 |
p | 输出指针地址 |
lu | 32Entier sans signe à bits |
llu | 64Entier sans signe à bits |
flags(标识) | Description |
---|---|
- | 在给定的字段宽度内左对齐,默认是右对齐(参见 width 子说明符)。 |
+ | 强制在结果之前显示加号或减号(+ ou -),即正数前面会显示 + Par défaut, seules les valeurs négatives affichent un - Point. |
Point. | Espace |
Si aucun symbole n'est écrit, insérez un espace avant la valeur. | # Utilisé avec o, x ou X, un zéro, 0x ou 0X est affiché devant les valeurs non nulles. Utilisé avec e, E et f, force l'émission d'un point décimal, même s'il n'y a pas de nombre après. Par défaut, si il n'y a pas de nombre après, le point décimal n'est pas affiché. |
0 | Utilisé avec g ou G, le résultat est le même que celui utilisé avec e ou E, mais les zéros à la fin ne sont pas supprimés. |
Placez des zéros (0) à gauche du nombre spécifié pour le remplissage padding, au lieu d'espaces (voir le sous-désignateur width). | Description |
---|---|
width (largeur) | (number) |
* | La largeur n'est pas spécifiée dans la chaîne de caractères format, mais est placée avant le paramètre à formater en tant que paramètre supplémentaire de valeur entière. Le nombre minimum de caractères à émettre. Si la valeur émise est plus courte que ce nombre, le résultat est rempli d'espaces. Si la valeur émise est plus longue que ce nombre, le résultat n'est pas tronqué. |
.precision (exactitude) | Description |
---|---|
.number | Pour les désignateurs de nombres entiers (d, i, o, u, x, X) : l'exactitude spécifie le nombre minimum de chiffres à écrire pour le nombre. Si la valeur écrite est plus courte que ce nombre, le résultat est rempli de zéros avant le chiffre. Si la valeur écrite est plus longue que ce nombre, le résultat n'est pas tronqué. Une exactitude de 0 signifie qu'aucun caractère n'est écrit. Pour les désignateurs e, E et f : nombre de décimales à émettre après le point décimal. Pour les désignateurs g et G : nombre maximum de chiffres significatifs à émettre. Pour s : nombre maximum de caractères à émettre. Par défaut, tous les caractères sont émis jusqu'à ce que le caractère de fin de chaîne soit rencontré. Pour le type c : n'a aucun effet. Si elle n'est pas spécifiée, elle est par défaut 1. |
.* | L'exactitude n'est pas spécifiée dans la chaîne de caractères format, mais est placée avant le paramètre à formater en tant que paramètre supplémentaire de valeur entière. Si elle n'est pas spécifiée, elle est supposée être 0. |
length (longueur) | Description |
---|---|
h | Les paramètres sont interprétés comme des types de court ou de court non signé (seulement pour les désignateurs de nombres entiers : i, d, o, u, x et X). |
l | Les paramètres sont interprétés comme des types de long ou de long non signé, applicables aux désignateurs de nombres entiers (i, d, o, u, x et X) et au désignateur c (représentant un caractère large) et s (représentant une chaîne de caractères large). |
L | Les paramètres sont interprétés comme des types de double précision long (seulement pour les désignateurs de nombres en virgule flottante : e, E, f, g et G). |
Paramètres supplémentaires -- Selon la chaîne de caractères format, la fonction peut nécessiter une série de paramètres supplémentaires, chaque paramètre contient une valeur à insérer, qui remplace chaque étiquette % spécifiée dans le paramètre format. Le nombre de paramètres doit être égal au nombre d'étiquettes %.
Si le succès, il retourne le nombre total de caractères écrits, sinon il retourne un nombre négatif.
Les exemples suivants montrent l'utilisation de la fonction printf().
#include <stdio.h> int main () { int ch; for( ch = 75 ; ch <= 100; ch++ ) { printf("La valeur ASCII est = %d, le caractère = %c\n", ch , ch ); } return(0); }
Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :
La valeur ASCII est = 75, le caractère = K La valeur ASCII est = 76, le caractère = L La valeur ASCII est = 77, le caractère = M La valeur ASCII est = 78, le caractère = N La valeur ASCII est = 79, le caractère = O La valeur ASCII est = 80, le caractère = P La valeur ASCII est = 81, le caractère = Q La valeur ASCII est = 82, le caractère = R La valeur ASCII est = 83, le caractère = S La valeur ASCII est = 84, le caractère = T La valeur ASCII est = 85, le caractère = U La valeur ASCII est = 86, le caractère = V La valeur ASCII est = 87, le caractère = W La valeur ASCII est = 88, le caractère = X La valeur ASCII est = 89, le caractère = Y La valeur ASCII est = 90, le caractère = Z La valeur ASCII est = 91, le caractère = [ La valeur ASCII est = 92, le caractère = \ La valeur ASCII est = 93, le caractère = ] La valeur ASCII est = 94, le caractère = ^ La valeur ASCII est = 95, le caractère = _ La valeur ASCII est = 96, le caractère = ` La valeur ASCII est = 97, le caractère = a La valeur ASCII est = 98, le caractère = b La valeur ASCII est = 99, le caractère = c La valeur ASCII est = 100, le caractère = d
Les exemples suivants affichent divers types de données formatées :
#include <stdio.h> int main() { char ch = 'A'; char str[20] = "fr.oldtoolbag.com"; float flt = 10.234; int no = 150; double dbl = 20.123456; printf("Le caractère est %c \n", ch); printf("La chaîne de caractères est %s \n" , str); printf("Un nombre à virgule flottante est %f \n", flt); printf("Un entier est %d\n" , no); printf("La valeur en double précision est %lf \n", dbl); printf("La valeur octale est %o \n", no); printf("La valeur hexadécimale est %x \n", no); return 0; }
Le résultat de l'exécution est :
Le caractère est A La chaîne de caractères est fr.oldtoolbag.com Un nombre à virgule flottante est 10.234000 Un entier est 150 La valeur en double précision est 20.123456 La valeur octale est 226 La valeur hexadécimale est 96