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