Use o botão abaixo para reportar erros ou dar sugestões.

Computação Científica - Um Livro Colaborativo

8.2 Abertura e Fechamento de arquivos


Até agora, os programas terminavam de ser executados e os resultados não eram salvos definitivamente em arquivo. Os arquivos são interessantes para fornecer dados de entrada para o programa e gravar resultados parciais e finais.

As operações mais comuns em arquivos são: abertura, leitura, escrita e fechamento. Abertura consiste em associar uma variável lógica ao nome do arquivo, leitura consiste em colocar em memória o conteúdo do arquivo, escrita é o caminho inverso da leitura e fechamento é a liberação da variável que associa o arquivo.

Em C não existe um tipo de variável nativa para arquivos. O tipo de variável usada é FILE da biblioteca <stdio.h>. Na prática, declaramos um ponteiro para o tipo de variável FILE tal como fazemos com outras variáveis:

int x;  
double *y;  
char ch;  
FILE *fp;

O comando para a abertura de um arquivo é o fopen, que entra com a string contendo o nome do arquivo, outra string contendo os modos de abertura e retorna um ponteiro para FILE:

FILE *fp;  
 
fp=fopen(string com nome, string com modo de abertura);

Os modos de abertura são os seguintes:

  • "r"(read): abertura de arquivo para leitura;
  • "w"(write): abertura de arquivo para escrita;
  • "a"(append): abertura de arquivo para acrescentar;

Além desses três modos, podemos usar um modo combinado:

  • "r+"(read): abertura de arquivo para leitura e escrita. Se o arquivo não existir, ele não é criado e, se ele já existir, os dados sobrescreverão os antigos;
  • "w+"(write): abertura de arquivo para leitura e escrita. Se o arquivo não existir, ele é criado e, se ele já existir, será apagado e recriado;
  • "a+"(append): abertura de arquivo para leitura e escrita. Se o arquivo não existir, ele é criado e, se ele já existir, os dados serão armazenados a partir do fim do arquivo.

Além disso, os arquivos podem ser abertos como binário ou texto. Os arquivos texto são aqueles que possuem símbolos interpretados por nós. Os arquivos binários em códigos não necessariamente legíveis e estão preparados para ser interpretados por um computador. Na prática, se você está interessado em salvar dados de simulação, vai preferir arquivo binário. Usamos a letra t para configurar o arquivo como texto e a letra b para binário. Assim, rb é o modo de abertura para arquivo binário que permite leitura. Analogamente, wb, ab, r+b, w+b e a+b.

Depois que você não precisa mais do arquivo aberto, você deverá fechá-lo. Para isso, você usará a função fclose(arquivo), que entrará um ponteiro para o arquivo e retornará um inteiro. A função fcloseall(arquivo) fecha todos arquivos abertos.

Exemplo 8.2.1. Implemente um código para abrir um arquivo binário no modo rb.

#include <stdio.h>  
 
int main(void)  
{  
  char nome[9]="nome.dat";  
  FILE *arq;  
 
  arq=fopen(nome,"r");  
  if (arq==NULL)  
    printf("Não conseguiu abrir o arquivo\n");  
  else  
    {  
    printf("Arquivo aberto com sucesso\n");  
    fclose(arq);  
    }  
}

Observe que, se você não possui um arquivo com o nome nome.dat na mesma pasta onde está seu código em C, esse programa retorna Não conseguiu abrir o arquivo.

Exemplo 8.2.2. Implemente um código para abrir um arquivo binário no modo w+b. Adicione o nome do arquivo em linha de comando.

#include <stdio.h>  
 
int main(int argc,char **argv)  
{  
  char *nome;  
  nome=argv[1];  
  FILE *arq;  
 
  arq=fopen(nome,"w+b");  
  if (arq==NULL)  
    printf("Não conseguiu abrir o arquivo\n");  
  else  
    {  
    printf("Arquivo aberto com sucesso\n");  
    fclose(arq);  
    }  
}

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 19/8/2020 às 17:33:16.

Informe erros ou edite você mesmo!