Prev Up Next
Go backward to Abre e lista o ficheiro
Go up to Alguns exercícios a exemplos dados nas aulas teóricas
Go forward to Números aleatórios e simulações

Abrir e fechar ficheiros, um exemplo



 // -----------------------------------------------------------------------------
 // Ficheiros (Streams):
 // Conta o numero de caracteres de um ficheiro e escreve-os noutro
 // a.out f1 f2
 #define MAXB 100
 #include <stdio.h>

 FILE *fin, *fout;

 main(int argc, char *argv[]){
   int ch,c=0;
   char buf[MAXB];
   FILE *open_file(char*, char*);

   if(argc!=3){
     printf("usage count file_in file_out\n");
     exit(1);
   }
   fin =  open_file(argv[1],"r");
   fout=  open_file(argv[2],"w");

   while((ch=getc(fin))!=EOF)
     c++;
   fprintf(fout,"Number of chars = %d\n",c);
   fclose(fin);
   fclose(fout);
 }

 //--- abre o ficheiro name no modo mode ---------------------
 FILE *open_file(char* name, char* mode){
   FILE *f;
   f=fopen(name,mode);
   if(f==NULL){
     printf("could not open file %s\n",name);
     exit(1);
   }
   return(f);
 }

 /*--- resultados ------------------------------------------
 $ ./a.out conta.c xx
 $ more xx
 Number of chars = 723
 $ wc conta.c
      36      84     723 conta.c

 */




Prev Up Next