Arquivos em C


Funções de manipulação de Arquivos

Função Descrição
fopen(nome, modo) Abre o arquivo com o nome especificado usando o modo. Por exemplo, para o modo "wt" o arquivo será aberto no modo escrita de texto. Retorna o apontador para o arquivo, que é usado para manipulá-lo.
fclose(pontArq) Fecha o arquivo cujo apontador foi passado como parâmetro.
fprintf(pontArq, str) Escreve no arquivo cujo apontador foi passado a String (str) passada.
fgets(str, n, pontArq) Faz a leitura do arquivo apontado por pontArq de até n caracteres, colocando-os no array de caracteres str. A função retorna o mesmo valor armazenado em str ou NULL quando não conseguir mais ler caracteres (fim do arquivo).

Exemplo 1: gravando um arquivo texto

#include <stdio.h>
main() {
   // Declara uma variavel do tipo arquivo  
   FILE *PontArq;
   
   // Abre o arquivo para escrita "w" no modo texto "t"
   PontArq = fopen("Teste.txt", "wt");
   
   // Imprime no arquivo a String passada
   fprintf(PontArq, "Arquivo de teste");

   // Fecha o arquivo
   fclose(PontArq);
}

Exemplo 2: gravando um arquivo HTML

#include <stdio.h>
main()
{
   FILE *PontArq;
   PontArq = fopen("Teste.htm", "wt");

   fprintf(PontArq, "<html>\n");
   fprintf(PontArq, "<head><title>Arquivos em C</title></head>\n");
   fprintf(PontArq, "<body>\n");
   fprintf(PontArq, "<B>Exemplo de arquivo HTML</B>\n");
   fprintf(PontArq, "</body>\n");
   fprintf(PontArq, "</html>"); 

   fclose(PontArq);
}
Exemplo 3: lendo um arquivo texto
#include <stdio.h>

void ExibeArquivoTexto(char *s) {

   // Abre o arquivo para leitura no modo texto
   FILE *p = fopen(s, "rt");

   // Faz a leitura de cada linha do arquivo e exibe na tela
   char Linha[80];
   char *Fim = fgets(Linha, 80, p);
   while (Fim != NULL) {
      printf("%s", Linha);
      Fim = fgets(Linha, 80, p);
   }

   // Fecha o arquivo
   fclose(p);
}

main() {
   // Obtem o nome do arquivo a ser exibido na tela
   char NomeArq[30];
   printf("Digite o nome do arquivo: ");
   scanf("%s", NomeArq);

   // Chama funcao que le o arquivo
   ExibeArquivoTexto(NomeArq);
}