École Supérieure de Technologie
et d’Informatique
A.U. 2011/2012
Cours programmation en langage C
Chapitre 3 : Les entrées sorties (3 pages)
Licence Informatique Appliquée 1ère année
(cid:1) La bibliothèque standard <stdio> contient un ensemble de fonctions qui assurent la
communication de la machine avec le monde extérieur
(cid:1) 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
(cid:1) printf("<format>",<Expr1>,<Expr2>, ... )
o "<format>" : format de représentation
o <Expr1>,... : variables et expressions dont les valeurs sont à représenter
SYMBOLE
%d ou %i
%u
%o
%x
%c
%f
%e
%s
TYPE
int
int
int
int
int
double
double
char*
IMPRESSION COMME
entier relatif
Publicité
entier naturel (unsigned)
entier exprimé en octal
entier exprimé en hexadécimal
caractère
rationnel en notation décimale
rationnel en notation scientifique
chaîne de caractères
Quelques caractéristiques de printf
(cid:1) printf(« %3d », n);
n=20 => ^20
n=3 => ^^3
// cadrage à droite (par défaut)
(cid:1) printf(« %-3d », n); // cadrage à gauche
n=20 => 20^
n=3 => 3^^
Exemple 1:
#include<stdio.h>
void main()
{
int i=3;
printf("%d%d%d",i,i,i);
}
=> exécution : 333
Wiem Yaiche Elleuch chapitre 3
1
Exemple 2:
#include<stdio.h>
void main()
{
int i=3;
printf("%3d%3d%3d",i,i,i);
}
=> exécution : 3 3 3
Exemple 3:
#include<stdio.h>
Publicité
void main()
{
int i=1234567789;
printf("%3d %3d %3d",i,i,i);
}
=> exécution : 1234567789 1234567789 1234567789
Exemple 4:
#include<stdio.h>
void main()
{
float x=12.5;
printf("%f %f",x,x);
}
=> exécution : 12.500000 12.500000
Exemple 5:
#include<stdio.h>
void main()
{
float x=12.5;
printf("%5.2f %5.2f",x,x);
}
=> exécution : 12.50 12.50
scanf("<format>",<AdrVar1>,<AdrVar2>, ...)
(cid:2) "<format>" : format de lecture des données
(cid:2) <AdrVar1>,... : adresses des variables auxquelles les données seront
attribuées
(cid:1) La fonction scanf reçoit ses données à partir du fichier d'entrée standard stdin (par
défaut le clavier).
(cid:1) La chaîne de format détermine comment les données reçues doivent être interprétées.
(cid:1) Les données reçues correctement sont mémorisées successivement aux adresses
indiquées par <AdrVar1>,... .
(cid:1) L'adresse d'une variable est indiquée par le nom de la variable précédé du signe &.
(cid:1) Pour tous les spécificateurs, nous pouvons indiquer la largeur maximale du champ à
évaluer pour une donnée. Les chiffres qui passent au-delà du champ défini sont
attribués à la prochaine variable qui sera lue
Publicité
(cid:1) Soient les instructions:
Wiem Yaiche Elleuch chapitre 3
2
int A,B;
scanf("%4d%2d", &A, &B);
1234567 => A=1234 B=56
(cid:1)
le chiffre 7 sera gardé pour la prochaine instruction de lecture.
SYMBOLE LECTURE D'UN(E)
%d ou %i entier relatif
%u
%o
%b
%c
%s
entier naturel (unsigned)
entier exprimé en octal
entier exprimé en hexadécimal
caractère
chaîne de caractères
rationnel en notation décimale ou exponentielle
(scientifique)
%f ou %e
TYPE
int*
int*
int*
int*
char*
char*
float*
Écriture d’un caractère
putchar('a'); affiche à l’écran a
Exemples
char A = 225;
Publicité
char B = '\a';
int C = '\a';
putchar('x'); / affiche la lettre x /
putchar('?');
putchar('\n');
putchar(65);
putchar(A);
putchar(B); / beep sonore /
/ beep sonore /
putchar(C);
/ affiche le symbole ? /
/ retour à la ligne /
/ affiche le symbole ayant le code ASCII 65 => A /
/ affiche la lettre ayant le code ASCII 225 => ß /
(cid:1) Une fonction plus souvent utilisée que putchar est la fonction getchar, qui lit le
prochain caractère du clavier.
(cid:1) En général, getchar est utilisé dans une affectation:
Exemple :
#include <stdio.h>
void main()
{
char x;
x=getchar();
putchar(x);
}
=> exécution : A
A
(cid:1) putchar(c); (cid:3)(cid:3)(cid:3)(cid:3) printf(« %c »,c);
(cid:1) getchar(); (cid:3)(cid:3)(cid:3)(cid:3) scanf(« %c »,&c);
Wiem Yaiche Elleuch chapitre 3
3