Cours 4.1. printf | Le blog de Lulu (2024)

Cours 3.12 Sommaire Cours 4.2

Dans ce nouveau chapitre, nous allons étudier les entrées/sorties. Il ne s'agit pasdes entrées et sorties au sens électronique du terme (GPIO en anglais). Il s'agit plutôtdes entrées et sorties du processeur (clavier, écran, lecture/écriture dans des fichiers).

La fonction printf qui permet d'afficher des messages dans la console est lapremière que nous allons étudier.

printf

printf est une fonction de la bibliothèque stdio.h. Le premier paramètre est nécessairementune chaîne de caractères :

printf ("Hello world");

Il est possible d'afficher des variables en insérant autant de codes de format dans la chaînede caractères.

  • Le premier code de format sera remplacé par la valeur de la première variable
  • Le deuxième code de format sera remplacé par la valeur de la deuxième variable
  • ...
printf ("1 variable : %d", u);printf ("2 variables : %d , %d", u, v);printf ("3 variables : %d , %d , %d", u, v, w);

Comme le symbole % est réservé aux code de format, pour afficher un % dans un printf,il faut le doubler :

printf ("10 %% de réduction");

Formatage des entiers

Les codes de format sont présentés sur cette page.

Il est possible de formater l'affichage en spécifiant le nombre de caractères minimumjuste après le %.

// Affiche sur 5 caractères minimum et complète avec des zéros// Affiche 00015printf ("%05d", 15);
  • Le 0 stipule que l'on complète avec des 0 ;
  • le 5 impose 5 caractères minimum.
// Affiche sur 2 caractères minimum et compléte avec des zéro (inutile ici)// Affiche 126printf ("%02d", 126);

S'il n'y a pas de zéro, on complète avec des espaces :

// Affiche sur 5 caractères minimum et complète avec des espaces// Affiche 3 espace avant le 15 : ___15printf ("%5d", 15);

Formatage en hexadécimal

Il est possible d'afficher les entiers en hexadécimal grâce au code de format %x.Le formatage du code de format %x est similaire à celui du code %d. Notons toutefois :

  • %x affiche les lettres en minuscule ;
  • %X affiche les lettres en majuscule.

Par exemple :

// Affiche sous forme décimale avec différents formatsprintf ("%%x : %x\n", val);printf ("%%X : %X\n", val);printf ("%%4x : %4x\n", val);printf ("%%04x : %04x\n", val);printf ("%%08X : %08X\n", val);

Formatage des flottants

Pour les flottants, le principe est similaire. Le point est comptabilisé dans lecomptage des caractères. On peut aussi spécifier le nombre de chiffresaprès la virgule :

// 8 caractères minimum et 2 chiffres après la virgule (compléte avec des zéros)// Affiche 00000.12printf ("%08.2f", 0.12345)

De même, en omettant le zéro, il sera possible de compléter avec des espaces :

// 8 caractères minimum et 2 chiffres après la virgule (compléte avec des espaces)// Affiche ____0.12printf ("%8.2f", 0.12345)

Exercices

Exercice 1

Écrire un programme qui affiche π avec 7 chiffres après la virgule. Utilisez laconstante M_PI de la bibliothèque math.h.

Exercice 2

Écrire un programme qui affiche les variables sur 8 caractères complétés avec des espaces :

int a=1, b=1234, c=125;// Affiche a, b et c sur 8 caractères.// COMPLETEZ ICI

Voici l'affichage attendu :

a = 1b = 1234c = 125

Exercice 3

Écrire un programme qui affiche la variable x en hexadécimal sur 32 bits :

int x = 2737;// Affiche x en hexadécimal sur 32 bits// COMPLETEZ ICI

Voici l'affichage attendu :

x = 0x00000AB1

Quiz

Qu'affiche ce code ?

printf ("%06d", 101);

Vérifier Bravo ! 6 caractères minimum complétés avec des zéros. Essaie encore ...

Qu'affiche ce code ?

printf ("%03d", 156987);

Vérifier Bravo ! Le nombre à afficher est composé de plus de 3 caractères, on ajoute aucun zéro. Essaie encore ...

Qu'affiche ce code ?

printf ("%6d", 101);

Vérifier Bravo ! 6 caractères minimum, complétés avec des espaces. Essaie encore ...

Qu'affiche ce code ?

printf ("%.2f", 123.456);

Vérifier Bravo ! Deux chiffres après la virgule, arrondis au plus proche. Essaie encore ...

Qu'affiche ce code ?

printf ("%08.2f", 123.456);

Vérifier Bravo ! Deux chiffres après la virgule et 8 caractères minimum complétés avec des zéros. Essaie encore ...

Quelle instruction permet d'afficher x avec 4 chiffres après la virgule ?

Vérifier Bravo ! Si c'est un nombre à virgule, ça ne peut pas être le code de format %d comme code de format : %.4f. Essaie encore ...

Comment afficher le caractère % dans un printf ? ?

Vérifier Bravo ! Pour afficher un %, il faut le doubler pour le distinguer des codes de format: %%. Essaie encore ...

Qu'affiche ce code ?

printf ("%06X", 0xacdc);

Vérifier Bravo ! %06X affiche en hexadécimal (majuscule), 6 caractères minimum, complétés avec des zéros. Essaie encore ...

Cours 3.12 Sommaire Cours 4.2

Voir aussi

  • Cours de programmation en C
  • Cours 1.1. Histoire du C
  • Cours 1.2. Premier programme
  • Cours 1.3. Compilation
  • Cours 1.4. Les directives de compilation
  • Cours 1.5. Quel compilateur choisir ?
  • Cours 1.6. Les organigrammes
  • Cours 2.1. Les types de variables
  • Cours 2.2. Les entiers
  • Cours 2.3. Les nombres décimaux
  • Cours 2.4. Les caractères
  • Cours 2.5. Initialisation des variables
  • Cours 2.6. Le vol 501 d'Ariane
  • Cours 3.1. Les opérateurs arithmétiques
  • Cours 3.2. Le modulo
  • Cours 3.3. Le type dans les opérations
  • Cours 3.4. Les conversion de type forcé
  • Cours 3.5. Les opérateurs bit à bit
  • Cours 3.6. Détail des opérateurs bit à bit
  • Cours 3.7. Opérateurs de décalage
  • Cours 3.8. Opérateurs d'affectation
  • Cours 3.9. Opérateur d'incrémentation/décrémentation
  • Cours 3.10. Les opérateurs de comparaison
  • Cours 3.11. Opérateurs logiques
  • Cours 3.12. Priorité des opérateurs
  • Cours 4.2. scanf
  • Cours 4.3. putchar
  • Cours 5.1. Branchement conditionnel (if...else)
  • Cours 5.2. if imbriqués et indentation
  • Cours 5.3. Tester des intervalles
  • Cours 5.4. Opérateur conditionnel ternaire ( ?: )
  • Cours 5.5. L'instruction switch..case
  • Cours 5.6. Le break dans les switchs
  • Cours 6.1. La boucle do..while en C
  • Cours 6.2. La boucle while en C
  • Cours 6.3. La boucle for
  • Cours 6.4. Comment choisir une boucle en C ?
  • Cours 6.5. Exercices sur les boucles en C
  • Cours 7.1. Masquages
  • Cours 7.2. Masquage : forçage à zéro
  • Cours 7.3. Forçage à un
  • Cours 7.4. Inversion de bits
  • Cours 7.5. Tester un bit
  • Cours 7.6. Synthèse des masquages
  • Cours 8.1. Syntaxe des fonctions en C
  • Cours 8.2. L'appel des fonctions
  • Cours 8.3. Le mot-clé void dans les fonctions
  • Cours 8.4. Le mot-clé return dans les fonctions
  • Cours 8.5. Portée des variables
  • Cours 8.6. Les variables globales
  • Cours 8.7. Les variables statiques
  • Cours 8.8. Nombres aléatoires en C
  • Cours 8.9. Fonctions mathématiques en C
  • Cours 9.1. Syntaxe des tableaux en C
  • Cours 9.2. Initialisation des tableaux en C
  • Cours 9.3. Les tableaux multidimensionnels en C
  • Cours 9.4. Comment les tableaux sont stockés en mémoire en C?
  • Cours 9.5. Les tableaux dans les fonctions
  • Cours 9.6. Exercices sur les tableaux en C
  • Cours 10.1. Les chaines de caractères en C
  • Cours 10.2. Le caractère de fin de chaîne
  • Cours 10.3. La bibliothèque string.h
  • Cours 10.4. Chaînes de caractères et fonctions
  • Cours 11.1. Introduction aux pointeurs en C
  • Cours 11.2. Syntaxe des pointeurs en C
  • Cours 11.3. Allocation mémoire dynamique
  • Cours 11.4. Incrémentation des pointeurs
  • Cours 11.5. Passage de paramètres par pointeur
  • Cours 12.1. Introduction aux structures en C
  • Cours 12.2. Propriétés des structures en C
  • Cours 12.3. Structures et pointeurs
  • Cours 12.4. Structures et fonctions
  • Cours 13.1. Fonctions récursives en C
  • Cours 13.2. Profondeur des fonctions récursives
  • Cours 13.3. Récursion croisée
  • Cours 14.1. Exercices complémentaires

Dernière mise à jour : 04/10/2023

Cours 4.1. printf | Le blog de Lulu (1)

Cours 4.1. printf | Le blog de Lulu (2024)

References

Top Articles
Latest Posts
Article information

Author: Dean Jakubowski Ret

Last Updated:

Views: 5783

Rating: 5 / 5 (70 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Dean Jakubowski Ret

Birthday: 1996-05-10

Address: Apt. 425 4346 Santiago Islands, Shariside, AK 38830-1874

Phone: +96313309894162

Job: Legacy Sales Designer

Hobby: Baseball, Wood carving, Candle making, Jigsaw puzzles, Lacemaking, Parkour, Drawing

Introduction: My name is Dean Jakubowski Ret, I am a enthusiastic, friendly, homely, handsome, zealous, brainy, elegant person who loves writing and wants to share my knowledge and understanding with you.