espace

Maîtrise d'informatique - Module 11



Rappels sur les fonctions de 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 indique le mode d'accès : r pour la lecture ("read"), w pour l'écriture ("write").

    L'ouverture en lecture d'un fichier inexistant retourne la valeur NULL dans la variable [id_fichier]. 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. L'appel de cette fonction est du type :

    Exemple :

    4. Fonction feof.

    La fonction feof, d'en-tête :

    renvoie une valeur non nulle si la fin du fichier est atteinte.

    5. Fonction fscanf.

    Pour effectuer la lecture de données dans un fichier, il est possible d'utiliser la fonction fscanf, dont la syntaxe d'appel est :

    Cette fonction se comporte de la même manière que scanf en opérant la lecture non plus sur le "buffer d'entrée", mais dans un fichier.

    Exemple :

    Pour lire un entier dans le fichier home/mod18g0/tests/test.comp, on appellera fscanf de la manière suivante :

    6. Fonction fprintf.

    Il est possible d'écrire des données dans un fichier en utilisant la fonction fprintf. La syntaxe de l'appel à cette fonction est :

    Comme printf, cette fonction peut n'afficher qu'un message. Les paramètres qui terminent l'appel de la fonction sont des valeurs 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 :

    tab est un pointeur sur la zone mémoire recevant les informations lues ; t est la taille de chaque information lue (en octets) ; ninfo est le nombre d'informations à lire ; fich est l'identificateur du fichier, de type FILE *, sur lequel on opère la lecture. Cet identificateur ne doit pas être confondu avec le nom du fichier.

    La fonction fread renvoie le nombre d'informations effectivement lues. Ce nombre d'informations peut être inférieur au nombre requis (si le fichier n'en contient pas assez, par exemple).

    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, en cas d'erreur.


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