Cours Programmation en Langage C - Chapitre 3 : Les Entrées et 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 fonctions principales de la bibliothèque standard <stdio.h> permettant la communication entre le programme et le monde extérieur, notamment l'affichage et la lecture de données formatées ou de caractères.
D'après le document Cours Programmation en Langage C - Chapitre 3 : Les Entrées et Sorties
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
Programming in C · 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 fonctions principales de la bibliothèque standard <stdio.h> permettant la communication entre le programme et le monde extérieur, notamment l'affichage et la lecture de données formatées ou de caractères.
Les fonctions d'entrée et sortie en langage C
La bibliothèque standard <stdio.h> contient un ensemble de fonctions permettant d'assurer la communication entre la machine et l'utilisateur ou d'autres périphériques. Parmi ces fonctions, on distingue :
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()
La fonction printf permet d'afficher des données selon un format spécifié. Sa syntaxe générale est :
printf("<format>", <Expr1>, <Expr2>, ... )
- <format> : chaîne de caractères définissant le format d'affichage
- <Expr1>, <Expr2>, ... : variables ou expressions dont les valeurs seront affichées
Les principaux symboles de format sont :
| Symbole | Type attendu | Affichage |
|---|---|---|
| %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 | nombre à virgule flottante en notation décimale |
| %e | double | nombre à virgule flottante en notation scientifique |
| %s | char* | chaîne de caractères |
Caractéristiques du formatage
Le format peut inclure un champ de largeur pour le cadrage :
%3d: affiche un entier sur au moins 3 caractères, aligné à droite (par défaut)%-3d: 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);
}
// Affichage : 333
#include <stdio.h>
void main() {
int i = 3;
printf("%3d%3d%3d", i, i, i);
}
// Affichage : " 3 3 3" (espaces pour compléter à 3 caractères)
#include <stdio.h>
void main() {
float x = 12.5;
printf("%5.2f %5.2f", x, x);
}
// Affichage : "12.50 12.50"
La fonction scanf()
La fonction scanf permet la lecture formatée de données depuis l'entrée standard (par défaut, le clavier). Sa syntaxe est :
scanf("<format>", &Var1, &Var2, ...)
- <format> : chaîne de format indiquant comment interpréter les données lues
- &Var1, &Var2, ... : adresses des variables où stocker les données lues
La fonction lit les données et les stocke successivement aux adresses indiquées. L'adresse d'une variable est obtenue avec l'opérateur &.
Il est possible d'indiquer une largeur maximale pour chaque champ lu. Par exemple :
int A, B;
scanf("%4d%2d", &A, &B);
Si l'entrée est 1234567, alors :
A = 1234B = 56
Le chiffre restant 7 sera conservé pour la prochaine lecture.
Symboles de format pour scanf()
| Symbole | Type attendu | Lecture de |
|---|---|---|
| %d ou %i | int* | entier relatif |
| %u | int* | entier naturel (unsigned) |
| %o | int* | entier exprimé en octal |
| %b | int* | entier exprimé en hexadécimal |
| %c | char* | caractère |
| %s | char* | chaîne de caractères |
| %f ou %e | float* | nombre à virgule flottante (notation décimale ou scientifique) |
Les fonctions putchar() et getchar()
La fonction putchar() affiche un seul caractère à l'écran. Par exemple :
putchar('a'); // affiche le caractère 'a'
Exemples d'utilisation :
char A = 225;
char B = '\a'; // caractère d'alerte sonore (beep)
int C = '\a';
putchar('x'); // affiche 'x'
putchar('?'); // affiche '?'
putchar('\n'); // retour à la ligne
putchar(65); // affiche le caractère ASCII 65, soit 'A'
putchar(A); // affiche le caractère ASCII 225, souvent 'ß'
putchar(B); // déclenche un beep sonore
putchar(C); // déclenche un beep sonore
La fonction getchar() lit un caractère depuis l'entrée standard (clavier). Elle est souvent utilisée dans une affectation :
#include <stdio.h>
void main() {
char x;
x = getchar();
putchar(x);
}
// Si l'utilisateur tape 'A', le programme affiche 'A'
On peut noter l'équivalence suivante :
putchar(c);est équivalent àprintf("%c", c);getchar();est équivalent àscanf("%c", &c);
Glossaire des termes clés
- printf() : fonction d'affichage formaté de données
- scanf() : fonction de lecture formatée de données
- putchar() : fonction d'affichage d'un caractère
- getchar() : fonction de lecture d'un caractère
- format : chaîne de caractères définissant la manière d'afficher ou de lire les données
- spécificateur de format : symbole dans la chaîne de format indiquant le type de donnée (%d, %f, %c, etc.)
- adresse d'une variable : emplacement mémoire d'une variable, indiquée par
&suivi du nom de la variable - entrée standard (stdin) : source par défaut des données lues, généralement le clavier
- sortie standard (stdout) : destination par défaut des données affichées, généralement l'écran
- champ de largeur : nombre indiquant la largeur minimale d'affichage ou de lecture d'une donnée
Points clés à retenir
- Les fonctions
printfetscanfpermettent respectivement d'afficher et de lire des données formatées en C. - Le format spécifie le type et la présentation des données (%d, %f, %c, %s, etc.).
- La fonction
printfpeut aligner les données à droite ou à gauche selon la présence du signe-dans le format. - La fonction
scanflit les données depuis l'entrée standard et nécessite l'adresse des variables pour stocker les valeurs. - Les fonctions
putcharetgetcharpermettent d'écrire et de lire un seul caractère. - Il est important de bien gérer la largeur des champs lors de la lecture avec
scanfpour éviter des erreurs de lecture.
Commentaires
Aucun commentaire pour le moment. Posez la première question.