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

C 语言基础教程

C 语言流程控制

Fonctions en C

Tableaux en C

Pointeurs en C

Chaînes en C

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

C 库函数 printf() 使用方法及示例

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é.
0Utilisé 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
.numberPour 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
hLes 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).
lLes 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).
LLes 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 %.

La valeur de retour

Si le succès, il retourne le nombre total de caractères écrits, sinon il retourne un nombre négatif.

Exemple en ligne

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 

Un symbole

  • %d
  • 㩵n Un entier sans signe en décimal
  • %f Un nombre à virgule flottante
  • %s Une chaîne de caractères
  • %c Un caractère unique
  • %p La valeur du pointeur
  • %e Nombre en forme exponentielle
  • %x, %X Entier sans signe en hexadécimal
  • %o Entier sans signe en octal
  • %g Sortir les valeurs selon le format %e ou %f avec la longueur de sortie plus courte
  • %p Symbole d'adresse de sortie
  • %lu 32Entier sans signe à bits
  • %llu 64Entier sans signe à bits

Bibliothèque standard en C - <stdio.h>