Fonction de bibliothèque C - printf ()

La description

La fonction de bibliothèque C int printf(const char *format, ...) envoie la sortie formatée à stdout.

Déclaration

Voici la déclaration de la fonction printf ().

int printf(const char *format, ...)

Paramètres

  • format- C'est la chaîne qui contient le texte à écrire dans stdout. Il peut éventuellement contenir des balises de format incorporées qui sont remplacées par les valeurs spécifiées dans les arguments supplémentaires suivants et formatées comme demandé. Le prototype de balises de format est%[flags][width][.precision][length]specifier, qui est expliqué ci-dessous -

N ° Sr. Spécificateur et sortie
1

c

Personnage

2

d or i

Entier décimal signé

3

e

Notation scientifique (mantisse / exposant) utilisant le caractère e

4

E

Notation scientifique (mantisse / exposant) utilisant le caractère E

5

f

Virgule flottante décimale

6

g

Utilise le plus court de% e ou% f

sept

G

Utilise le plus court de% E ou% f

8

o

Signé octal

9

s

Chaîne de caractères

dix

u

Entier décimal non signé

11

x

Entier hexadécimal non signé

12

X

Entier hexadécimal non signé (majuscules)

13

p

Adresse du pointeur

14

n

Rien d'imprimé

15

%

Personnage

N ° Sr. Drapeaux et description
1

-

Justifiez à gauche dans la largeur de champ donnée; La justification à droite est la valeur par défaut (voir le sous-spécificateur de largeur).

2

+

Oblige à faire précéder le résultat d'un signe plus ou moins (+ ou -) même pour les nombres positifs. Par défaut, seuls les nombres négatifs sont précédés du signe -ve.

3

(space)

Si aucun signe ne doit être écrit, un espace est inséré avant la valeur.

4

#

Utilisée avec les spécificateurs o, x ou X, la valeur est précédée de 0, 0x ou 0X respectivement pour les valeurs différentes de zéro. Utilisé avec e, E et f, il force la sortie écrite à contenir un point décimal même si aucun chiffre ne suivrait. Par défaut, si aucun chiffre ne suit, aucun point décimal n'est écrit. Utilisé avec g ou G, le résultat est le même qu'avec e ou E mais les zéros de fin ne sont pas supprimés.

5

0

Remplit à gauche le nombre avec des zéros (0) au lieu d'espaces, où le remplissage est spécifié (voir le sous-spécificateur de largeur).

N ° Sr. Largeur et description
1

(number)

Nombre minimum de caractères à imprimer. Si la valeur à imprimer est inférieure à ce nombre, le résultat est complété par des espaces vides. La valeur n'est pas tronquée même si le résultat est plus grand.

2

*

La largeur n'est pas spécifiée dans la chaîne de formatage, mais sous la forme d'un argument de valeur entière supplémentaire précédant l'argument à mettre en forme.

N ° Sr. .précision et description
1

.number

Pour les spécificateurs d'entiers (d, i, o, u, x, X) - la précision spécifie le nombre minimum de chiffres à écrire. Si la valeur à écrire est plus courte que ce nombre, le résultat est complété par des zéros non significatifs. La valeur n'est pas tronquée même si le résultat est plus long. Une précision de 0 signifie qu'aucun caractère n'est écrit pour la valeur 0. Pour les spécificateurs e, E et f - il s'agit du nombre de chiffres à imprimer après la virgule décimale. Pour les spécificateurs g et G - Il s'agit du nombre maximal de chiffres significatifs à imprimer. Pour s - c'est le nombre maximum de caractères à imprimer. Par défaut, tous les caractères sont imprimés jusqu'à ce que le caractère nul de fin soit rencontré. Pour le type c - cela n'a aucun effet. Lorsqu'aucune précision n'est spécifiée, la valeur par défaut est 1. Si la période est spécifiée sans valeur explicite de précision, 0 est supposé.

2

.*

La précision n'est pas spécifiée dans la chaîne de format, mais sous la forme d'un argument de valeur entière supplémentaire précédant l'argument à mettre en forme.

N ° Sr. Longueur et description
1

h

L'argument est interprété comme un int court ou un int court non signé (s'applique uniquement aux spécificateurs d'entiers: i, d, o, u, x et X).

2

l

L'argument est interprété comme un long int ou un long int non signé pour les spécificateurs d'entiers (i, d, o, u, x et X), et comme un caractère large ou une chaîne de caractères large pour les spécificateurs c et s.

3

L

L'argument est interprété comme un long double (s'applique uniquement aux spécificateurs à virgule flottante: e, E, f, g et G).

  • additional arguments- Selon la chaîne de format, la fonction peut s'attendre à une séquence d'arguments supplémentaires, chacun contenant une valeur à insérer à la place de chaque% -tag spécifié dans le paramètre de format (le cas échéant). Il doit y avoir le même nombre de ces arguments que le nombre de% -tags qui attendent une valeur.

Valeur de retour

En cas de succès, le nombre total de caractères écrits est renvoyé. En cas d'échec, un nombre négatif est renvoyé.

Exemple

L'exemple suivant montre l'utilisation de la fonction printf ().

#include <stdio.h>

int main () {
   int ch;

   for( ch = 75 ; ch <= 100; ch++ ) {
      printf("ASCII value = %d, Character = %c\n", ch , ch );
   }

   return(0);
}

Compilons et exécutons le programme ci-dessus pour produire le résultat suivant -

ASCII value = 75, Character = K
ASCII value = 76, Character = L
ASCII value = 77, Character = M
ASCII value = 78, Character = N
ASCII value = 79, Character = O
ASCII value = 80, Character = P
ASCII value = 81, Character = Q
ASCII value = 82, Character = R
ASCII value = 83, Character = S
ASCII value = 84, Character = T
ASCII value = 85, Character = U
ASCII value = 86, Character = V
ASCII value = 87, Character = W
ASCII value = 88, Character = X
ASCII value = 89, Character = Y
ASCII value = 90, Character = Z
ASCII value = 91, Character = [
ASCII value = 92, Character = \
ASCII value = 93, Character = ]
ASCII value = 94, Character = ^
ASCII value = 95, Character = _
ASCII value = 96, Character = `
ASCII value = 97, Character = a
ASCII value = 98, Character = b
ASCII value = 99, Character = c
ASCII value = 100, Character = d