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

Afficher l'aperçu du document

Consulter le document original →

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ées
  • scanf() : lecture formatée de données
  • putchar() : écriture d'un caractère
  • getchar() : 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 %iintentier relatif
%uintentier naturel (unsigned)
%ointentier exprimé en octal
%xintentier exprimé en hexadécimal
%cintcaractère
%fdoublenombre à virgule flottante en notation décimale
%edoublenombre à virgule flottante en notation scientifique
%schar*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 = 1234
  • B = 56

Le chiffre restant 7 sera conservé pour la prochaine lecture.

Symboles de format pour scanf()

Symbole Type attendu Lecture de
%d ou %iint*entier relatif
%uint*entier naturel (unsigned)
%oint*entier exprimé en octal
%bint*entier exprimé en hexadécimal
%cchar*caractère
%schar*chaîne de caractères
%f ou %efloat*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 printf et scanf permettent 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 printf peut aligner les données à droite ou à gauche selon la présence du signe - dans le format.
  • La fonction scanf lit les données depuis l'entrée standard et nécessite l'adresse des variables pour stocker les valeurs.
  • Les fonctions putchar et getchar permettent 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 scanf pour éviter des erreurs de lecture.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions