/********************************************************** 
PROGRAMA aula2b.c 
Exemplo de programa que copia um arquivo-texto,de nome exemplo1.txt 
(existente no diretorio corrente), para outro arquivo exemplo2.txt (a ser 
criado no diretorio corrente). 
O fim de arquivo e' testado com a funcao feof(). 
Nesse programa, a leitura e gravacao e' feita linha a linha, 
por meio das funcoes fgets() e fputs(). 
Nesse exemplo o laco testa o fim de arquivo pelo retorno NULL da funcao 
fgets(). 
Leia observacoes no final 
***********************************************************/ 
#include <stdio.h> 
int main() { 
   FILE *in, *out; 
   char s[80]; 
  
   if ((in = fopen("exemplo1.txt", "rt")) == NULL){ 
      printf("Nao consegue abrir o arquivo de entrada.\n"); 
      return 1; 
   } 
   if ((out = fopen("exemplo2.txt", "wt")) == NULL) { 
      printf("Nao consegue abrir o arquivo de saida.\n"); 
      return 1; 
   } 
  ; 
   while ( (fgets(s, 80, in)!= NULL)) 
    fputs(s, out); 
  
   fclose(in); 
   fclose(out); 
   return 0; 
} 
/********************************************************************** 
 OBSERVACOES: 
  1. A funcao fgets()  tem a seguinte definicao: 
      char* fgets(char *s, int n, FILE *fp) 
    Ela transfere os caracteres do arquivo fp a partir da posicao corrente para 
    um buffer s, ate' um maximo de n-1 caracteres, ou ate' encontrar o caractere 
    de fim-de-linha '\n'. Nesse ultimo caso, o caractere '\n' sera' tambem 
    copiado para o buffer. A leitura termina tambem se for detectado o final do 
    arquivo. Ao terminar, escreve o caractere '\0' no final do buffer, para que 
    fique com o formato correto de uma string. Ela retorna o ponteiro s, ou NULL 
    se ocorrer erro ou for detectado o fim do arquivo. 
  
 2. A funcao fputs() tem a seguinte definicao: 
      int fputs(const char *s, FILE *fp) 
    Ela escreve no arquivo fp o conteudo da string s. O terminador '\0' da string 
    NÃO e' gravado. 

    Ela grava o caractere c na proxima posicao do arquivo apontado por fp. 
    Essa funcao retorna um valor nao negativo em caso de sucesso, ou EOF (-1) 
    em caso de alguma falha. 
FIM DO PROGRAMA aula2b.c 
*************************************************************************/ 
