espace

Maîtrise d'informatique - Module 18
Traitement du signal - Travaux Pratiques



Lecture/écriture dans des fichiers, en langage C :

  • 1. Introduction.
  • 2. Fonction fopen.
  • 3. Fonction fclose.
  • 4. Fonction feof.
  • 5. Fonction fscanf.
  • 6. Fonction fprintf.
  • 7. Fonction fread.
  • 8. Fonction fwrite.

  • 1. Introduction.

    La lecture et l'écriture dans des fichiers, en langage C, peuvent être effectuées soit à l'aide des fonctions fscanf et fprintf, soit à l'aide des fonctions fread et fwrite. Il est important de bien connaître la différence essentielle entre ces deux paires de fonctions :

    2. Fonction fopen.

    Pour manipuler un fichier en langage C, il faut avant tout le déclarer. Pour cela, on utilise la déclaration :

    La fonction fopen permet d'ouvrir un fichier en lecture ou en écriture selon le mode spécifié. Sa syntaxe d'appel est :

    nom_de_fichier est le nom du fichier tel qu'il a été enregistré, ou tel qu'il doit être enregistré, précédé éventuellement du chemin d'accès, et où mode, qui doit comporter deux caractères, indique le mode d'accès : r pour la lecture (read), w pour l'écriture sans concaténation (write), ou a pour l'écriture avec concaténation (append) ; t pour un fichier de texte ou b pour un fichier binaire.

    L'ouverture en lecture d'un fichier inexistant affecte la valeur NULL à la variable id_fich. L'ouverture en écriture d'un fichier inexistant provoque la création de celui-ci.

    Exemple :

    3. Fonction fclose.

    Lorsqu'un fichier a été ouvert dans un programme, il est nécessaire de le fermer avant la fin de l'exécution de celui-ci. On utilise pour cela la fonction fclose.

    Exemple :

    4. Fonction feof.

    La fonction feof renvoie une valeur non nulle si la fin du fichier est atteinte, et 0 sinon.

    Exemple :

    5. Fonction fscanf.

    Pour effectuer la lecture de données dans un fichier, il est possible d'utiliser la fonction fscanf. Cette fonction se comporte de la même manière que scanf, en opérant la lecture non plus dans le "buffer d'entrée", mais dans un fichier.

    Exemple :

    6. Fonction fprintf.

    Il est possible d'écrire des données dans un fichier en utilisant la fonction fprintf. Comme printf, cette fonction peut n'afficher qu'un message. Les paramètres qui terminent l'appel de la fonction sont des valeurs d'expressions, qui peuvent venir s'insérer dans le message à afficher. Dans ce cas, la position de ces valeurs dans le message doit être indiquée par des spécificateurs de format.

    Exemple :

    7. Fonction fread.

    La lecture dans un fichier peut également s'effectuer à l'aide de la fonction fread, d'en-tête :

    où :

    La fonction fread renvoie le nombre d'informations effectivement lues. Ce nombre d'informations peut être inférieur au nombre requis, dans le cas où la fin du fichier est atteinte.

    8. Fonction fwrite.

    L'écriture dans un fichier peut également s'effectuer à l'aide de la fonction fwrite, d'en-tête :

    La fonction fwrite renvoie le nombre d'informations effectivement écrites. Ce nombre d'informations peut être inférieur au nombre requis, dans le cas où l'écriture est effectuée sur un disque saturé.


    Ces pages ont été réalisées par Jean-Denis Durou et Pascal Matsakis.
    Pour tout commentaire, envoyer un mail à durou@irit.fr.