Previous Next Up Index Contents

11.4.3. Exemples: Ouvrir et fermer des fichiers en pratique

En langage algorithmique, il suffit de simplement ouvrir et fermer un fichier par les commandes respectives:

programme PERSONNEL
  chaîne NOM_FICHIER
  . . .

  écrire "Entrez le nom du fichier : "
  lire NOM_FICHIER
  ouvrir NOM_FICHIER en écriture
  (* ou bien *)
  (* ouvrir NOM_FICHIER en lecture  *)

  . . .

  fermer NOM_FICHIER   
fprogramme (* fin PERSONNEL *)  

En pratique, il faut contrôler si l'ouverture d'un fichier a été accomplie avec succès avant de continuer les traitements. Pour le cas d'une erreur, nous allons envisager deux réactions différentes:

a) Répéter l'essai jusqu'à l'ouverture correcte du fichier

#include <stdio.h>
main()
{
  FILE *P_FICHIER;      /* pointeur sur FILE */
  char NOM_FICHIER[30]; /* nom du fichier */
  . . .

  do
    {
     printf("Entrez le nom du fichier : ");
     scanf("%s", NOM_FICHIER);
     P_FICHIER = fopen(NOM_FICHIER, "w"); 
     /* ou bien */
     /* P_FICHIER = fopen(NOM_FICHIER, "r"); */
     if (!P_FICHIER) 
        printf("\aERREUR: Impossible d'ouvrir "
               "le fichier: %s.\n", NOM_FICHIER);
    }
  while (!P_FICHIER);

  . . . 

  fclose(P_FICHIER);
  return 0;
} 

b) Abandonner le programme en retournant un code d'erreur non nul - exit

#include <stdio.h>
#include <stdlib.h>
main()
{
  FILE *P_FICHIER;      /* pointeur sur FILE */
  char NOM_FICHIER[30]; /* nom du fichier */
  . . .

   printf("Entrez le nom du fichier : ");
   scanf("%s", NOM_FICHIER);
   P_FICHIER = fopen(NOM_FICHIER, "w"); 
   /* ou bien */
   /* P_FICHIER = fopen(NOM_FICHIER, "r"); */
   if (!P_FICHIER) 
      {
       printf("\aERREUR: Impossible d'ouvrir "
              "le fichier: %s.\n", NOM_FICHIER);
       exit(-1);  /* Abandonner le programme en */
      }       /* retournant le code d'erreur -1 */

  . . . 

  fclose(P_FICHIER);
  return 0;
} 


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber