| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 
 |  
#include <stdio.h>
#include <errno.h>
#include <string.h>
 
void openFile(FILE *file,char *mod) //pour ouvrir un fichier avec le mode indique
{
   char path[101];
   errno=0;
   printf("the Path: ");
   fgets(path,101,stdin);
   file=fopen(path,mod);
   if(file==NULL)
   {
      fprintf(stderr,"Error while opening the file\n");
      strerror(errno);
   }
}
 
void writeFile(FILE *file) //pour l'ecriture dans un fichier
{
   char c1=' ',c2;
   if(file==NULL)
   {
      fprintf(stderr,"Error while opening the file %s\n",strerror(errno));
      return;
   }
   printf("press twice enter to quit\n");
   do
   {
      c2=c1;
      c1=getchar();
      fputc(c1,file);
   }while(c1!='\n' && c2!='\n' );
}
 
void readFile(FILE *file) //pour la lecture d'un fichier
{
   char c;
   if(file==NULL)
   {
      fprintf(stderr,"Error while opening the file %s\n",strerror(errno));
      return;
   }
   while(c!=EOF)
   {
      c=fgetc(file);
      putchar(c);
   }
}
 
void closeFile(FILE *file) //pour fermer le fichier
{
   if(file==NULL)
   {
      fprintf(stderr,"Error while opening the file %s\n",strerror(errno));
   }
   else
   {
      fclose(file);
   }
}
int main(void)
{
   char choice;
   FILE *file;
   do
   {
      printf("1-write 2-add 3-read 4-quit:  ");
      choice=getchar();
      switch(choice)
      {
         case '1':{
            openFile(file,"w");
            writeFile(file);
            closeFile(file);
         }
         break;
         case '2':{
            openFile(file,"a");
            writeFile(file);
            closeFile(file);
         }
         break;
         case '3':{
            openFile(file,"r");
            readFile(file);
            closeFile(file);
         }
         break;
         case '4':{
         }
         break;
         default :fprintf(stderr,"invalid choice\n");
      }
      fflush(stdin);//pour vider le buffer
   }while(1);
} | 
Partager