Vous êtes sur la page 1sur 4

Cours Algorithme et programmation C Chapitre 2 : Les fonctions d’E/S standards

Chapitre 2 : Les fonctions d’E/S standards

I. Introduction
Les fonctions d’E/S standards sont les fonctions assurant l’échange d’information entre la
mémoire centrale et les périphériques standard, principalement le clavier et l’écran.
Dans ce chapitre, nous allons examiner les fonctions permettant de lire les données à partir du
clavier et d’afficher les résultats sur l’écran.

II. Les fonctions d’entrées

II.1 Lecture formatée de données

II.1.a La fonction scanf


La fonction scanf, appartenant à la bibliothèque stdio.h, permet la saisie clavier de n'importe
quel type de variable.
syntaxe :

scanf("<format>",<AdrVar1>,<AdrVar2>, ...)

"<format>" : représente le format de lecture des données. C’est une chaîne de caractères (donc
entouré par des guillemets). Elle est composée de spécificateurs qui indique le type de
variables qu’on va lire. Chaque spécificateur correspond à un type de variable et doit donc
apparaître dans le même ordre que la variable dans la liste. Les principaux spécificateurs de
format sont résumé dans le tableau suivant.

spécificateur signification
%d ou %x ou %o Pour une variable de type int (décimale,
hexadécimale , octale)
%u Pour une variable de type unsigned int
%h Pour une variable de type short int
%f Pour une variable de type float
%lf Pour une variable de type double
%e Pour une variable de type exponentielle
%c Pour une variable de type char
%s Pour une variable de type texte

<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 &.

Maroua EL KASTOURI 1
Cours Algorithme et programmation C Chapitre 2 : Les fonctions d’E/S standards

Exemple :

int JOUR, MOIS, ANNEE;


scanf("%d %d %d", &JOUR, &MOIS, &ANNEE);

Cette suite d'instructions lit trois entiers relatifs, séparés par des espaces, tabulations ou
interlignes. Les valeurs sont attribuées respectivement aux trois variables JOUR, MOIS et
ANNEE.

char car ; scanf(“%c”,&car);saisie d’un caractère


int i ; scanf(“%d”,&i); scanf(“%x”,&i);saisie d’un entier , saisie en hexadécimal
float r ; scanf(“%f”,&r);saisie d’un réel;

Remarque:
 On peut placer la longueur de la variable entre le signe % et la lettre spécificateur. Par
exemple « %3d » indique qu’on va lire un entier de 3 chiffres et le reste des chiffres
sont ignorés. scanf("%3d",&i) ;
 Si l’on sépare les spécificateurs de format par des espaces ou par des virgules alors les
valeurs à lire seront séparées par les mêmes séparateurs.

II.2 Lecture non formatée d’un caractère

II.2.a La fonction gets

La fonction gets() lit une ligne de caractères de stdin et la copie à l'adresse indiquée par la
chaîne. Le retour à la ligne final est remplacé par le symbole de fin de chaîne '\0'.

II.2.b La fonction getchar()


La fonction getchar() permet la saisie d'un caractère (char). Elle appartient à la bibliothèque
stdio.h. Les deux écritures suivantes sont équivalentes:

char c; char c;
printf("ENTRER UN CARACTERE: "); printf("ENTRER UN CARACTERE: ");
scanf("%c",&c); c = getchar();

Non formatée, la fonction getchar est moins gourmande en place mémoire que scanf. Il vaut
mieux l'utiliser quand cela est possible; getchar utilise le flux d'entrée exactement comme
scanf.

II.2.c La fonction getch()

La fonction getch, appartenat à la bibliothèque conio.h permet la saisie clavier d'un caractère
alphanumérique, sans écho écran. La saisie s'arrête dés que le caractère a été frappé.
La fonction getch n'est pas définie dans la norme ANSI mais elle peut exister dans la
bibliothèque d'autres compilateurs. On peut utiliser getch de deux façons:
On peut utiliser getch de deux façons:

Maroua EL KASTOURI 2
Cours Algorithme et programmation C Chapitre 2 : Les fonctions d’E/S standards

 Sans retour de variable au programme:


Exemple:
Printf (" pour continuer frapper une touche");
getch();

 Avec retour de variable au programme:


Exemple:
char c;
printf(" entrer un caractère(attention pas de return)");
c=getch();
printf("\n voici ce caractère: %c", c);

Les parenthèse vides de getch() signifient qu'aucun paramètre n'est passé à cette fonction par
le programme.

III. Les fonctions de sorties

III.1 Ecriture formatée de données

La fonction printf est utilisée pour transférer du texte, des valeurs de variables ou des
résultats d'expressions vers le fichier de sortie standard stdout (par défaut l'écran).
syntaxe :

printf("<format>",<Expr1>,<Expr2>, ... )

"<format>" : format de représentation


<Expr1>,... : variables et expressions dont les valeurs sont à représenter

La partie "<format>" est en fait une chaîne de caractères qui peut contenir:

 du texte
 des séquences d'échappement
 des spécificateurs de format
 Les spécificateurs de format indiquent la manière dont les valeurs des expressions
<Expr1..N> sont imprimées.
 La partie "<format>" contient exactement un spécificateur de format pour chaque
expression <Expr1..N>.
 Les spécificateurs de format commencent toujours par le symbole % et se terminent par
un ou deux caractères qui indiquent le format d'impression.
 Les spécificateurs de format impliquent une conversion d'un nombre en chaîne de
caractères. Ils sont encore appelés symboles de conversion.

Exemples :

int i =65 ;
printf(" le caractère %d est %c" ,i,i) ;
Cette suite d’instructions affiche sur l’écran : le caractère 65 est A
%d est remplacé par la valeur numérique de i càd 65
%c est remplacé par la valeur alphanumérique (ASCII) de i càd A

Maroua EL KASTOURI 3
Cours Algorithme et programmation C Chapitre 2 : Les fonctions d’E/S standards

int A = 1234;
int B = 567;
printf("%i fois %i est %li\n", A, B, (long)A*B);
Cette suite d’instructions affiche sur l’écran : 1234 fois 567 est 699678

III.3 Ecriture non formatée d’un caractère

III.3.a La fonction putchar()


La fonction putchar() affiche un caractère non formaté sur le périphérique de sortie standard.

Les arguments de putchar sont par définition du type int et toutes les valeurs traitées par
putchar (même celles du type char) sont d'abord converties en int.
Exemples :

Char C ;
C=’A’
putchar( C );
char A = 225;
putchar('x'); /* afficher la lettre x */
putchar('?'); /* afficher le symbole ? */
putchar('\n'); /* retour à la ligne */
putchar(65); /* afficher le symbole avec le code 65 (ASCII: 'A') */
putchar(A); /* afficher la lettre avec le code 225 (ASCII: 'ß') */

III.3.b La fonction puts


Envoie une chaîne de caractères vers stdout et ajoute un saut de ligne (newline).
Exemple :
puts ("Bonjour");

Remarque :
Il vaut mieux utiliser puts et putchar ci cela est possible, ces fonctions, non formatées, sont
d’exécution plus rapide et nécessitent moins de place en mémoire lors de leur chargement.

Exercices :
1. Ecrire un programme qui calcule la soustraction de deux nombres et affiche le résultat sur
l’écran.
2. Ecrire un programme qui permet la saisie d’un nombre entier et l’affiche en hexadécimal
sur l’écran

Maroua EL KASTOURI 4

Vous aimerez peut-être aussi