Previous Next Up Index Contents

Exercice 11.3

#include <stdio.h>
#include <stdlib.h>
main()
{
  /* Déclarations : */
  /* Noms des fichiers et pointeurs de référence */
  char ANCIEN[]  = "A:\\INFORM.TXT";
  char NOUVEAU[] = "A:\\INFBIS.TXT"; 
  FILE *INFILE, *OUTFILE;
  /* Autres variables */
  char NOM[30], PRENOM[30];
 
  int MATRICULE;
  char NOM_NOUV[30], PRE_NOUV[30];
  int MATRI_NOUV;
  /* Ouverture de l'ancien fichier en lecture */
  INFILE = fopen(ANCIEN, "r");
   if (!INFILE)
     { 
      printf("\aERREUR: Impossible d'ouvrir "
             "le fichier: %s.\n", ANCIEN);
      exit(-1);
     }
  /* Ouverture du nouveau fichier en écriture */
  OUTFILE = fopen(NOUVEAU, "w");
   if (!OUTFILE)
     { 
      printf("\aERREUR: Impossible d'ouvrir "
             "le fichier: %s.\n", NOUVEAU);
      exit(-1);
     }

  /* Saisie de l'enregistrement à ajouter */
  printf("Enregistrement à ajouter : \n");
  printf("Numéro de matricule : ");
  scanf("%d",&MATRI_NOUV);      
  printf("Nom    : ");
  scanf("%s",NOM_NOUV);
  printf("Prénom : ");
  scanf("%s",PRE_NOUV);
  /* Copie des enregistrements de l'ancien fichier */
  while (!feof(INFILE))
    {
     fscanf (INFILE, "%d\n%s\n%s\n", &MATRICULE, NOM, PRENOM);
     fprintf(OUTFILE, "%d\n%s\n%s\n", MATRICULE, NOM, PRENOM);
    }
  /* Ecriture du nouvel enregistrement à la fin du fichier */
  fprintf(OUTFILE,"%d\n%s\n%s\n",MATRI_NOUV,NOM_NOUV,PRE_NOUV);
  /* Fermeture des fichiers */
  fclose(OUTFILE);
  fclose(INFILE);
   return 0;
} 


Previous Next Up Index Contents

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