Vous êtes sur la page 1sur 13

1 GII / GT

Algorithmique & programmation


en langage C

Chapitre 3 Les fonctions


d’affichage et de saisie
Les Entrées-Sorties
printf
scanf
putchar
getchar
Chapitre 3 Les fonctions d’affichage et de saisie
Les Entrées-Sorties

• Les Entrées-Sorties sont des fonctions définies dans une bibliothèque du langage (stdio :
Standard Input/Output Library) qui permettent de communiquer avec un programme à
travers l’écran et le clavier.
→ La bibliothèque standard « stdio.h » contient un ensemble de fonctions qui assurent la
communication de la machine avec le monde extérieur.

#include <stdio.h>
/*La bibliothèque « stdio.h »
• Les fonctions les plus importantes sont:
Pour l'écriture : Pour la lecture:
✓ printf(): écriture formatée de données ✓ scanf(): lecture formatée de données
✓ putchar(): écriture d'un caractère ✓ getchar(): lecture d'un caractère

: 7
2
Chapitre 3 Les fonctions d’affichage et de saisie
printf

• Appartient à la bibliothèque « stdio.h »


• L’instruction « printf » permet d’afficher sur l’écran une liste d’expressions, selon un
format d’affichage souhaité (double, entier, réel, caractère, ...):

printf("texte"); Affichage de texte à l’écran sans aucune


/*affichage de texte. modification.

<format> : format de présentation


printf("<format> " , <Expr1>,<Expr2>, …); <Expr1>,<Expr2>, … : variables et expressions
/*affichage des variables ou d'expressions. dont les valeurs sont à représenter

La partie « format » est une chaine de caractères qui peut contenir :


✓ Du texte
✓ Des séquences d’échappements
✓ Des spécificateurs de format

3
Chapitre 3 Les fonctions d’affichage et de saisie
printf

• Les spécificateurs de format commencent toujours par le symbole %

Symbole Description
%d int
%u unsigned int (entier non-signé)
%f float
%lf double
%e float sous forme scientifique
%c caractère
%s chaîne de caractères
%o entier non-signé en Octal
%x entier non-signé en Hexadécimal

• On peut éventuellement préciser certains paramètres.

4
Chapitre 3 Les fonctions d’affichage et de saisie
printf

Exemple
int i = 65, k = 5;
1 Donnez le prix unitaire
float j = 3.5; 2 la valeur de i est 65
3 i=65
1 printf("Donnez le prix unitaire\n");
j=3.500000
2 printf("la valeur de i est %d\n", i); 4 i=A
j=0
printf("i=%d\nj=%f\n", i, j); 3
5 somme(65,5)=70
printf("i=%c\nj=%d\n", i, j); 4 FIN
printf( "somme(%d,%d)=%d\nFIN",i,k, i + k); 5

5
Chapitre 3 Les fonctions d’affichage et de saisie
printf

• Largeur minimale de variable


Il est possible d'indiquer la largeur minimale de la valeur à afficher. Dans le champ ainsi
réservé, les nombres sont justifiés à droite:
Exemple (((1
1
1 printf("%4d\n", 1);
printf("%4d\n", 123); 2 2 ( 123
printf("%4d\n", 1234); 3 3 1234
4 printf("%-4d",123);
4 123(
• Largeur minimale et précision pour les rationnels
La syntaxe est: "%n.mf" où: n est la largeur du champ et m est le nombre de décimales
Exemple 1 ( ( ( 100.123
1 printf("%10.3f\n", 100.123); 2 100.123000
printf("%10f\n", 100.123); 2
3 printf("%f\n",100.123) ; 3 100.123000 (par défaut 6 chiffres après la virgule)

6
Chapitre 3 Les fonctions d’affichage et de saisie
printf

Exemple
float num = 9.123456789;
1 num 1=9.123457
1 printf("num 1=%f\n", num); num 2=9.1
2
printf("num 2=%.1f\n", num); 2
3 num 3=9.123
3 printf("num 3=%.3f\n", num);
printf("num 4=%.5f\n", num); 4 4 num 4=9.12346
5 num 5=9.1
5 printf("num 5=%0.1f\n", num);
6 num 6=9.1
printf("num 6=%1.1f\n", num); 6
7 printf("num 7=%2.1f\n", num); 7 num 7=9.1
printf("num 8=%3.1f\n", num); 8
8
num 8=9.1
9 printf("num 9=%4.1f\n", num); num 9=( 9.1
9
printf("num 10=%10.3f\n", num); 10 10 num 10=( ( ( ( ( 9.123
11 printf("num 11=%-10.3f\n", num); 11 num 11=9.123( ( ( ( (

7
Chapitre 3 Les fonctions d’affichage et de saisie
scanf

• Appartient à la bibliothèque « stdio.h »


• L’instruction « scanf » permet la saisie clavier de n'importe quel type de variable.
• Reçoit les données à partir du fichier d’entrée standard « stdin » (par défaut le clavier).

scanf(<chaine_de_format>, <AdrVar1>,…);
/*Lecture formatée de données

<chaine_de_format> : format de lecture des données


<AdrVar1>,… : adresses des variables auxquelles les données seront attribuées.

• Cette instruction permet d’affecter une valeur tapée au clavier à une variable.
• Les données reçues correctement sont mémorisées successivement aux adresses
indiquées par <AdrVar1>,…
• Le nom de la variable est précédé du symbole & désignant l'adresse de la variable.

8
Chapitre 3 Les fonctions d’affichage et de saisie
scanf

int i;
float k; 1 /*Le programme lit une valeur entière de i et
char m; valeur réelle de k */
Exemple
scanf("%d\n%f\n",&i, &k); 1
scanf("%c",&m); 2 2 /*Le programme lit un caractère pour la
variable m */

• Tous les éléments saisis après un caractère d'espacement (espace, tabulation) sont ignorés.

char mes; ✓ Si l'utilisateur saisi seulement A : il affiche A


Exemple scanf("%c",&mes); ✓ Si l'utilisateur saisi seulement AC12 : il affiche A
printf("%c",mes); ✓ Si l'utilisateur saisi seulement A C12 : il affiche A

9
Chapitre 3 Les fonctions d’affichage et de saisie
putchar

• La fonction « putchar » permet l'afficher un caractère.


• Appartient à la bibliothèque « stdio.h »

putchar(caractere);
/*Ecriture d’un caractère

• La fonction « putchar() » manipule uniquement des caractères, c'est à dire des octets
dont le contenu correspond au code ASCII du caractère.
Exemple
char A='E'; 1 E
putchar(A); 1
putchar(65); 2 2 A

• Compléter : si c est un caractère → putchar(c); ≡ printf( "%c\n",c );

10
Chapitre 3 Les fonctions d’affichage et de saisie
getchar

• La fonction « getchar() » appartient à la bibliothèque « stdio.h ».


• « getchar » lit les données de la zone tampon « stdin » (clavier) et fournit les données
seulement après confirmation par « entrée » .
• Les valeurs retournées par « getchar() » sont des caractères.

getchar();
/*Lecture d’un caractère

• Compléter : si c est un caractère → c = getchar(); ≡ scanf( "%c",&c );


Exemple
• Il existe dans la bibliothèque « conio.h » une #include <stdio.h>
fonction « getch() » qui fournit immédiatement #include <conio.h>
int main()
le prochain caractère entré au clavier (sans { printf("%c", getch());
validation). return 0; }

11
Chapitre 3 Les fonctions d’affichage et de saisie
Exercice

Exercice
Ecrire un programme qui calcule la valeur du polynôme suivant avec est un nombres réel saisie
au clavier:
p = 4 𝑥 4 -3 𝑥 3 + 2 𝑥 2 + 1 𝑥 – 1.1
#include <stdio.h>
#include <math.h>
main()
{ float x, p;
printf("Donner la valeur de x=");
scanf("%f", &x);
p = 4 * pow(x, 4) - 3 * pow(x, 3) + 2*pow(x, 2) + 1 * x - 1.1;
printf("Resultat : %f\n", p);
}

12
Chapitre 3 Les fonctions d’affichage et de saisie
Exercice

Exercice
Ecrire un programme qui calcule et affiche la distance DIST (type double) entre deux points A
et B du plan dont les coordonnées (XA, YA) et (XB, YB) sont entrées au clavier comme entiers.

#include <stdio.h>
#include <math.h>
main()
{ int XA, YA, XB, YB;
double DIST;
printf("Entrez les coordonnées du point A : XA,YA ");
scanf("%d,%d", &XA, &YA);
printf("Entrez les coordonnées du point B : XB,YB ");
scanf("%d,%d", &XB, &YB);
DIST = sqrt(pow(XA - XB, 2) + pow(YA - YB, 2));
printf("La distance entre A(%d,% d) et B(%d, %d) est %lf\n", XA, YA, XB, YB, DIST);
return 0; }

13

Vous aimerez peut-être aussi