Dans ce nouveau chapitre, nous allons étudier les entrées/sorties. Il ne s'agit pas des entrées et sorties au sens électronique du terme (GPIO en anglais). Il s'agit plutôt des 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 la
première que nous allons étudier.
printf
est une fonction de la bibliothèque stdio.h
. Le premier paramètre est nécessairement
une 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îne de caractères.
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");
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 minimum
juste après le %
.
// Affiche sur 5 caractères minimum et complète avec des zéros
// Affiche 00015
printf ("%05d", 15);
0
stipule que l'on complète avec des 0 ;5
impose 5 caractères minimum.// Affiche sur 2 caractères minimum et compléte avec des zéro (inutile ici)
// Affiche 126
printf ("%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 : ___15
printf ("%5d", 15);
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 formats
printf ("%%x : %x\n", val);
printf ("%%X : %X\n", val);
printf ("%%4x : %4x\n", val);
printf ("%%04x : %04x\n", val);
printf ("%%08X : %08X\n", val);
Pour les flottants, le principe est similaire. Le point est comptabilisé dans le comptage des caractères. On peut aussi spécifier le nombre de chiffres après la virgule :
// 8 caractères minimum et 2 chiffres après la virgule (compléte avec des zéros)
// Affiche 00000.12
printf ("%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.12
printf ("%8.2f", 0.12345)
Écrire un programme qui affiche π avec 7 chiffres après la virgule. Utilisez la
constante M_PI
de la bibliothèque math.h
.
É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 = 1
b = 1234
c = 125
É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
Qu'affiche ce code ?
printf ("%06d", 101);
Qu'affiche ce code ?
printf ("%03d", 156987);
Qu'affiche ce code ?
printf ("%6d", 101);
Qu'affiche ce code ?
printf ("%.2f", 123.456);
Qu'affiche ce code ?
printf ("%08.2f", 123.456);
Quelle instruction permet d'afficher x
avec 4 chiffres après la virgule ?
Comment afficher le caractère %
dans un printf ? ?
Qu'affiche ce code ?
printf ("%06X", 0xacdc);
%06X
affiche en hexadécimal (majuscule), 6 caractères minimum, complétés avec des zéros.
Essaie encore ...