NOTION DE FLUX D’ENTREE
Lorsque l’on saisit au clavier une suite de caractères terminés par « RETURN » ces caractères sont rangés dans un tampon (ou buffer) de type FIFO (First In/First Out), le dernier caractère rangé dans le tampon est LF (code ASCII 0x0A).
Cette suite de caractères est appelée flux d’entrée.
La taille du tampon dépend de la machine et du compilateur utilisés. Sur un PC et en TURBOC, la taille du tampon est de 127 caractères.
Une compilation du programme vide le tampon.
LA FONCTION SCANF DEUXIEME APPROCHE
La fonction scanf ne se comporte pas tout à fait comme décrit plus haut. Si le tampon est vide, tout se passe comme précédemment décrit.
Au contraire, si le tampon n’est pas vide, la fonction scanf en teste le premier élément, s’il correspond au format de la variable invoquée, le tampon perd cet élément et la variable en prend la valeur.
Tout caractère ou nombre saisi au clavier et non pris en compte par la fonction scanf est rangé dans le tampon.
Exemple et Exercice II-4:
#include <stdio.h>
#include <conio.h>
void main()
{
char c1,c2;
printf(« ENTRER UN CARACTERE: « );
scanf(« %c »,&c1);
printf(« VOICI SON CODE ASCII EN HEXADECIMAL: %x\n »,c1);
printf(« ENTRER UN AUTRE CARACTERE: « );
scanf(« %c »,&c2);
printf(« VOICI SON CODE ASCII EN HEXADECIMAL: %x\n »,c2);
printf(« POUR CONTINUER FRAPPER UNE TOUCHE « );
getch();
}
Si l’utilisateur saisit K pour c1, le programme donnera l’écran d’exécution suivant:
ENTRER UN CARACTERE: K
VOICI SON CODE ASCII EN HEXADECIMAL: 4b
ENTRER UN AUTRE CARACTERE: VOICI SON CODE ASCII EN HEXADECIMAL: a
Saisie de nombres et de caractères au clavier (120 KO) (Cours PDF)