Cours programmation en langage C - Chapitre 3 : Les entrées sorties
Ce cours couvre les notions fondamentales des entrées et sorties en langage C, destinées aux étudiants de première année en informatique appliquée. Il présente les principales fonctions de la bibliothèque standard stdio.h permettant la communication entre un programme et son environnement extérieur, notamment l’écran et le clavier.
D'après le document Cours programmation en langage C - Chapitre 3 : Les entrées sorties
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
Computer Science · PDF · 3 pages · 2011
Afficher l'aperçu du document
Ce cours couvre les notions fondamentales des entrées et sorties en langage C, destinées aux étudiants de première année en informatique appliquée. Il présente les principales fonctions de la bibliothèque standard stdio.h permettant la communication entre un programme et son environnement extérieur, notamment l’écran et le clavier.
Les fonctions d'entrée/sortie de la bibliothèque stdio
La bibliothèque standard stdio contient un ensemble de fonctions assurant la communication entre la machine et le monde extérieur. Les fonctions principales sont :
printf(): écriture formatée de donnéesscanf(): lecture formatée de donnéesputchar(): écriture d'un caractèregetchar(): lecture d'un caractère
La fonction printf() : écriture formatée
La syntaxe générale est :
printf("<format>", <Expr1>, <Expr2>, ...)
<format>: chaîne de format définissant la représentation des données<Expr1>, ...: variables ou expressions dont les valeurs seront affichées
Les principaux spécificateurs de format sont :
| 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 | char | caractère |
| %f | double | rationnel en notation décimale |
| %e | double | rationnel en notation scientifique |
| %s | char* | chaîne de caractères |
Caractéristiques du formatage
On peut spécifier la largeur minimale du champ d’affichage :
printf("%3d", n);: affiche un entier sur au moins 3 caractères, avec un alignement à droite par défaut.printf("%-3d", n);: affiche un entier sur au moins 3 caractères, aligné à gauche.
Exemples :
#include <stdio.h>
void main() {
int i = 3;
printf("%d%d%d", i, i, i);
}
Exécution : 333
#include <stdio.h>
void main() {
int i = 3;
printf("%3d%3d%3d", i, i, i);
}
Exécution : 3 3 3 (avec des espaces pour le cadrage à droite)
#include <stdio.h>
void main() {
int i = 1234567789;
printf("%3d %3d %3d", i, i, i);
}
Exécution : 1234567789 1234567789 1234567789 (le nombre dépasse la largeur minimale)
#include <stdio.h>
void main() {
float x = 12.5;
printf("%f %f", x, x);
}
Exécution : 12.500000 12.500000
#include <stdio.h>
void main() {
float x = 12.5;
printf("%5.2f %5.2f", x, x);
}
Exécution : 12.50 12.50 (affichage avec 2 décimales et largeur minimale 5)
La fonction scanf() : lecture formatée
La syntaxe générale est :
scanf("<format>", &Var1, &Var2, ...)
<format>: chaîne de format définissant la lecture des données&Var1, &Var2, ...: adresses des variables où stocker les données lues
Les données sont lues depuis le fichier d'entrée standard stdin, par défaut le clavier.
La chaîne de format détermine comment interpréter les données reçues. Les valeurs correctement lues sont stockées successivement aux adresses indiquées.
L'adresse d'une variable est indiquée par le nom de la variable précédé du signe &.
On peut aussi spécifier la largeur maximale du champ à lire. Les caractères dépassant cette largeur sont attribués à la variable suivante.
Exemple :
int A, B;
scanf("%4d%2d", &A, &B);
Si l'entrée est : 1234567, alors A = 1234, B = 56, et le chiffre 7 reste dans le buffer pour la lecture suivante.
Principaux spécificateurs de lecture
| Symbole | Type attendu | Description |
|---|---|---|
| %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 | char* | caractère |
| %s | char* | chaîne de caractères |
| %f ou %e | float* | rationnel en notation décimale ou scientifique |
Les fonctions putchar() et getchar()
putchar() affiche un seul caractère à l'écran. Par exemple :
putchar('a'); // affiche la lettre 'a'
Exemples d'utilisation :
char A = 225;
char B = '\a';
int C = '\a';
putchar('x'); // affiche 'x'
putchar('?'); // affiche '?'
putchar('\n'); // retour à la ligne
putchar(65); // affiche le caractère ASCII 65 => 'A'
putchar(A); // affiche le caractère ASCII 225 => 'ß'
putchar(B); // déclenche un beep sonore
putchar(C); // déclenche un beep sonore
La fonction getchar() lit un caractère depuis le clavier. Elle est souvent utilisée dans une affectation :
#include <stdio.h>
void main() {
char x;
x = getchar();
putchar(x);
}
Exemple d'exécution : si l'utilisateur tape A, le programme affiche A.
On peut noter l'équivalence :
putchar(c);est similaire àprintf("%c", c);getchar();est similaire àscanf("%c", &c);
Glossaire des termes clés
- printf() : fonction d’écriture formatée vers la sortie standard (écran).
- scanf() : fonction de lecture formatée depuis l’entrée standard (clavier).
- putchar() : fonction qui affiche un seul caractère.
- getchar() : fonction qui lit un seul caractère depuis le clavier.
- Spécificateur de format : chaîne de caractères dans
printfouscanfdéfinissant la manière de lire ou d’écrire une donnée. - Adresse d’une variable : emplacement mémoire où est stockée la variable, indiqué par
&devant le nom de la variable. - Champ de largeur : nombre minimal de caractères utilisés pour afficher ou lire une donnée.
- Notation scientifique : représentation d’un nombre rationnel sous forme exponentielle (ex : 1.23e+02).
Points essentiels à retenir
- La bibliothèque
stdiofournit les fonctions de base pour les entrées/sorties en C. printf()permet d’afficher des données formatées avec différents spécificateurs.scanf()lit des données formatées depuis le clavier, en stockant aux adresses des variables.- Les fonctions
putchar()etgetchar()gèrent les caractères un par un. - Le formatage permet de contrôler la largeur et l’alignement des données affichées ou lues.
- La gestion des adresses est essentielle pour la lecture avec
scanf().
Commentaires
Aucun commentaire pour le moment. Posez la première question.