Previous Next Up Index Contents

Exercice 11.6

#include <stdio.h>
#include <stdlib.h>
main()
{
  /* Déclarations : */
  /* Nom du fichier et pointeur de référence */
  char NOM_FICH[] = "A:\\FAMILLE.TXT"; 
  FILE *FICHIER;
  /* Autres variables */
  char NOM[30], PERE[30], MERE[30], ENFANT[30];
  int J,N_ENFANTS;
  int I,N_ENR;
 
  /* Ouverture du nouveau fichier en écriture */
  FICHIER = fopen(NOM_FICH, "w");
   if (!FICHIER)
     {  
      printf("\aERREUR: Impossible d'ouvrir "
             "le fichier: %s.\n", NOM_FICH);
      exit(-1);
     }

  /* Saisie des données et création du fichier */
  printf("*** Création du fichier %s ***\n", NOM_FICH);
  printf("Nombre d'enregistrements à créer : ");
  scanf("%d",&N_ENR);
  for (I=1; I<=N_ENR; I++)
    {
     printf("Enregistrement No: %d \n", I);
     printf("Nom de famille : ");
     scanf("%s", NOM);      
     printf("Prénom du père : ");
     scanf("%s", PERE);
     printf("Prénom de la mère : ");
     scanf("%s", MERE);
     printf("Nombre d'enfants : ");
     scanf("%d", &N_ENFANTS);
     fprintf(FICHIER, "%s\n%s\n%s\n%d\n",
                                   NOM, PERE, MERE, N_ENFANTS);
     for (J=1; J<=N_ENFANTS; J++)
         {
          printf("Prénom %d. enfant : ", J);
          scanf("%s", ENFANT);
          fprintf(FICHIER, "%s\n", ENFANT);
         }
    }
  /* Fermeture du fichier */
  fclose(FICHIER);
  /* Réouverture du fichier */
  FICHIER = fopen(NOM_FICH, "r");
   if (!FICHIER)
     {  
      printf("\aERREUR: Impossible d'ouvrir "
             "le fichier: %s.\n", NOM_FICH);
      exit(-1);
     }
  /* Affichage du fichier */
  printf("*** Contenu du fichier  %s ***\n", NOM_FICH);
  while (!feof(FICHIER))
    {
     fscanf (FICHIER, "%s\n%s\n%s\n%d\n",
                                   NOM, PERE, MERE, &N_ENFANTS);
      printf("\n");
     printf("Nom de famille : %s\n", NOM);
     printf("Nom du père    : %s %s\n", PERE, NOM);
     printf("Nom de la mère : %s %s\n", MERE, NOM);
     printf("Noms des enfants : \n", N_ENFANTS);
     for (J=1; J<=N_ENFANTS; J++)
         {
          fscanf(FICHIER, "%s\n", ENFANT);
          printf("\t%d. : %s %s\n", J, ENFANT, NOM);
         }
    }
  /* Fermeture du fichier */
  fclose(FICHIER);
   return 0;
}


Previous Next Up Index Contents

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