next up previous contents index
Next: Bibliothèques Up: No Title Previous: Randomisation

Fichiers

    La lecture et l'écriture sur des fichiers sont réalisées à l'aide de fonctions, de types et de variables déclarés   dans stdio.h.

Les fichiers (du système d'exploitation) sont manipulés par l'intermédiaire d'objets de type FILE . Un fichier est ouvert au moyen de la fonction fopen qui retourne un pointeur de FILE et prend en argument deux chaînes de caractères : le nom du fichier et le mode d'accès. Ce mode est usuellement "r" pour l'accès en lecture, "w" pour l'accès en écriture (ce mode-ci crée un fichier en écrasant le contenu du fichier s'il existe déjà), ou "a" (qui écrit à la fin du fichier, le créant s'il n'existe pas). On écrira ainsi :  

  FILE *fp = fopen("toto", "a");

pour écrire à partir de la fin du fichier toto dans le répertoire courant.

Quand l'exécution d'un programme commence, l'entrée standard, la sortie standard et la sortie d'erreur standard, désignées respectivement par les pointeurs de fichier stdin, stdout et stderr, sont déjà ouvertes.        

On peut lire et écrire sur un fichier à l'aide des fonctions fscanf et fprintf, analogues à scanf et printf mais prenant un premier argument supplémentaire, qui est de type pointeur de FILE. Par exemple, on écrira un flottant x a la fin du fichier toto par :    

  fprintf(fp, "%f\n", x);

Avant de tenter de lire ou d'écrire sur un fichier, il est conseillé de tester si l'ouverture a réussi, en testant si le pointeur retourné par fopen n'est pas nul :

  FILE *fp = fopen(nom, "r");

  if (fp == NULL) {
    fprintf(stderr, "erreur : %s ne peut pas être ouvert", nom);
    exit(1);
  } else {
    ...
  }

Il existe beaucoup d'autres fonctions opérant sur des fichiers. Quand un fichier ouvert n'est plus utilisé, il doit être fermé au moyen de fclose, qui retourne 0 en cas de succès :  

  fclose(fp);

next up previous contents index
Next: Bibliothèques Up: No Title Previous: Randomisation
R.Lalement (Cermics)