Les entrées/sorties.
En C, les instructions d'entrées/sorties se font par le biais de fonctions standard, et en voici les deux plus importantes :1. La fonction SCANF.
Cette fonction lit une liste de variables selon le format suivant :
scanf(format, liste_adresses);
Où format est une chaîne de caractères composée de spécifications qui indiquent le type des variables que l'on va lire et
Où liste_adresse est la liste des adresses des variables à lire.
Chaque spécification correspond à une variable et doit donc apparaître dans le même ordre que la variable dans la liste.
Les principales spécifications sont :
+ %d pour une variable de type int
+ %u pour une variable de type unsigned int
+ %f pour une variable de type float
+ %lf pour une variable de type double
+ %e pour une variable de type float mise sous la forme scientifique (ex.: 3.4E-2)
+ %c pour une variable de type char %s pour une variable de type texte
+ %p pour une variable de type pointeur
On peut placer la longueur de la variable entre le signe % et la lettre,
exemple : "%3d" indique que l'on va lire un entier de trois chiffres.
Un blanc mis entre deux spécifications de format signifie que l'on peut mettre autant de blancs ou de lignes que l'on veut entre les valeurs à lire.
Si l'on sépare les spécifications par une virgule, alors les valeurs à lire seront séparées par des virgules.
Lorsque la liste des données entrées est complète, il faut, pour signaler la fin de cette liste, enfoncer la touche ENTER (ou RETURN).
Remarques :
- il faut utiliser l'opérateur "adresse de".
- le format peut être une chaîne explicite ou une variable dont la valeur représente le format souhaité. Ceci implique que l'on peut avoir des formats variables.
Exemples :
int i;
float j;
char k;
scanf ("%d %f %c",&i,&j,&k);
scanf ("%2d,%f,%c", &i, &j, &k);
Dans le premier cas, les valeurs à lire pourraient être : 32767 2.132 a
La touche "Enter" sera enfoncée après chaque valeur entrée.
Dans le second cas, elles pourraient être : 34,3.1415,A
La touche "Enter" sera enfoncée une seule fois, après entrée des trois valeurs.
2. La fonction PRINTF.
Cette fonction écrit des informations selon le format suivant :
printf(format, liste d'items);
Où format peut être composé de la même manière que pour la fonction scanf et
Où item est : soit une variable, et dans ce cas, c'est la valeur de la variable qui sera écrite, soit une valeur.
Dans la chaîne format on peut intercaler du texte qui sera écrit tel quel.
Pour éviter toute confusion avec une spécification de format, lorsque l'on doit afficher le caractère %, on le double.
Exemple :
printf("25 %% = 25 pourcent.");
On peut insérer également des séquences spéciales appelées séquences escape, qui permettent de contrôler l'impression des données.
Les principales séquences escape sont :
-\n : passage à la ligne suivante
-\r : retour du curseur en début de ligne
-\b : déplacement du curseur d'un caractère vers la gauche
- \f : déplacement à la page suivante
-\t : déplacement du curseur d'une tabulation vers la droite
- \v : déplacement du curseur d'une tabulation vers le bas
- \a : déclenchement d'un bip sonore
Comme pour les spécifications de format, si l'on désire insérer le caractère \ dans la chaîne à imprimer, on double le caractère, c'est à dire que l'on tape \\.
Exemples :
int i;
printf ("entrez une valeur :\n");
scanf("%d",&i);
i=i*2;
printf (" valeur * 2 = %d",i);
3. La fonction GETCH.
Cette fonction lit un caractère unique. La valeur renvoyée par la fonction correspond au caractère lu.
Exemple :
char c;
printf ("Entrez un caractère au clavier.\n");
c=getch(); // c contiendra le caractère entré par l'utilisateur.
Remarque : cette fonction est très utilisée, d'une manière différente, en fin de programme, pour garder l'affichage à l'écran de la fenêtre générée par l'exécution du programme. En effet, lorsque le programme se termine, la fenêtre d'affichage se ferme, ce qui ne laisse pas à l'utilisateur le temps suffisant pour lire les informations à l'écran.
Exemple :
main()
{
printf("Bonjour !");
getch();
}
Cette fonction getch(), en fin de programme, attend que l'utilisateur enfonce une touche au clavier, n'importe laquelle, avant de continuer l'exécution du programme. Cela laissera donc à l'utilisateur, tout le temps nécessaire à la lecture de l'écran. Cette fonction est définie dans le fichier "conio.h". L'ajout de la directive de compilation #include <conio.h> ,en début de programme, sera donc indispensable.
No comments:
Post a Comment