Section courante

A propos

Section administrative du site

PRINTF

Impression avec format
Langage C stdio.h

Syntaxe

int printf(const char *texte,...);

Paramètres

Nom Description
texte Ce paramètre permet d'indiquer le texte à afficher. Le format de chacun des spécificateur doit respecter le format suivant «%[drapeaux][largeur][.precision][longueur]specificateur». Il est a noter que un ou plusieurs des spécificateurs suivants peuvent être inclus dans le texte et il utilisera un argument supplémentaire pour chaque spécificateurs :
Spécificateur Description Type de données
%c Ce spécificateur indique d'insérer à cette position un caractère contenu dans la liste des arguments après le texte char
%d Ce spécificateur indique d'insérer à cette position un entier sous forme décimal contenu dans la liste des arguments après le texte int
%f Ce spécificateur indique d'insérer à cette position un nombre réel (nombre à virgule flottante) contenu dans la liste des arguments après le texte float, double
%i Ce spécificateur indique d'insérer à cette position un entier contenu dans la liste des arguments après le texte int
%o Ce spécificateur indique d'insérer à cette position un entier sous forme octal contenu dans la liste des arguments après le texte int
%s Ce spécificateur indique d'insérer à cette position une chaîne de caractères contenu dans la liste des arguments après le texte char *
%x Ce spécificateur indique d'insérer à cette position un entier sous forme hexadécimal contenu dans la liste des arguments après le texte int
Il est possible d'ajouter une précision du nombre décimal afficher en insérant le nombre entre le symbole de pourcentage et la lettre.

Retour

Valeur Description
0 ou supérieur Ces valeurs permettent d'indiquer que l'opération a réussis et indique le nombre correspond au nombre de caractères affichés.
-1 ou inférieur Ces valeurs permettent d'indiquer qu'une erreur s'est produite, il faudra consulter la fonction «ferror» pour davantage de détails.

Description

Cette fonction permet d'effectuer l'écriture de texte selon un certain format sur la console (soit la sortie standard). En somme, puisque la concaténation de chaîne de caractères et de nombres n'est pas une chose facile en langage de programmation C, cette fonction permet donc de jumelé facilement du contenu de différentes chaînes de caractères et de nombres de caractères en seule fonction. Le premier paramètre (obligatoirement une chaîne de caractères) indique toujours le formatage à utiliser, tandis que les spécificateurs suivants «%s», «%i»,... seront remplacés par chacun des paramètres respectivement à partir du deuxième paramètre.

Algorithme

MODULE printf(format, list)
   currentParam ← 0
   BOUCLE POUR i ← 0 JUSQU'A Longueur(format) - 1
      SI '%' = format[i] ALORS
         ii + 1
         EVALUER CAS format[i]
            CAS 'c':
               AFFICHER CARACTERE list[currentParam]
               currentParamcurrentParam + 1
            CAS 'd':
               AFFICHER NOMBRE list[currentParam]
               currentParamcurrentParam + 1
            CAS 'f':
               AFFICHER NOMBRE REEL list[currentParam]
               currentParamcurrentParam + 1
            CAS 'i':
               AFFICHER ENTIER list[currentParam]
               currentParamcurrentParam + 1
            CAS 's':
               AFFICHER CHAINE DE CARACTERES list[currentParam]
               currentParamcurrentParam + 1
            CAS 'x':
               AFFICHER NOMBRE HEXADECIMAL list[currentParam]
               currentParamcurrentParam + 1
         FIN EVALUER CAS
      SINON
         AFFICHER CARACTERE format[i]
      FIN SI
   FIN BOUCLE POUR

Remarques

Exemples

Voici divers exemple d'affichages de format :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.       printf("Boujour!\n");
  7.       printf("Entier %%i = %i\n",15);
  8.       printf("Hexadecimal %%x = %x\n",16);
  9.       printf("Octal %%o = %o\n",16);
  10.       printf("Chaine de caracteres %%s = %s\n","message");
  11.       printf("Reel %%f = %f\n",123.45);
  12.       printf("Reel %%f = %.2f\n",123.45);
  13.       return 0;
  14. }

on obtiendra le résultat suivant :

Boujour!
Entier %i = 15
Hexadecimal %x = 10
Octal %o = 20
Chaine de caracteres %s = message
Reel %f = 123.450000
Reel %f = 123.45

L'exemple suivant permet de montrer une résolution d'une expression de type de données long comme paramètre :

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int dizaine = 10, millier = 1000;
  7.     printf("Valeur d'une dizaine = %i\n",dizaine);
  8.     printf("Valeur d'un millier = %i\n",millier);
  9.     printf("Le produit de dizaine fois des millier = %i\n", (long)dizaine * millier);
  10.     return 0;
  11. }

on obtiendra le résultat suivant :

Valeur d'une dizaine = 10
Valeur d'un millier = 1000
Le produit de dizaine fois des millier = 10000

L'exemple suivant permet de montrer les valeurs ASCII de chacun des lettres du nom Gladir :

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     char G = 'G';
  7.     char l = 'l';
  8.     char a = 'a';
  9.     char d = 'd';
  10.     char i = 'i';
  11.     char r = 'r';
  12.     printf("Les codes ASCII de lettres G=%i, l=%i, a=%i, d=%i, i=%i, r=%i\n",G,l,a,d,i,r);
  13.     return 0;
  14. }

on obtiendra le résultat suivant :

Les codes ASCII de lettres G=71, l=108, a=97, d=100, i=105, r=114

L'exemple suivant permet de cadré «Gladir.com» avec 20 espace à partir de la fin de la chaîne de caractères :

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     printf("%20s\n","Gladir.com");
  7.     return 0;
  8. }

on obtiendra le résultat suivant :

          Gladir.com

Voir également

Langage de programmation - C - Référence procédures et fonctions - fprintf
Langage de programmation - C - Référence procédures et fonctions - fread
Langage de programmation - C - Référence procédures et fonctions - fscanf
Langage de programmation - C - Référence procédures et fonctions - fwrite
Langage de programmation - C - Référence procédures et fonctions - scanf
Langage de programmation - C pour Linux - Référence procédures et fonctions - printf
Langage de programmation - C++ - Référence procédures et fonctions - printf
Langage de programmation - Turbo C - Référence procédures et fonctions - printf
Langage de programmation - Quick C - Référence procédures et fonctions - printf
Langage de programmation - Symantec C++ - Référence procédures et fonctions - printf
Langage de programmation - Visual C++ - Référence procédures et fonctions - printf

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 195.

Dernière mise à jour : Samedi, le 9 juin 2018