Introdução aos arquivos

Ver Todos os Exercícios

Teoria

Introdução

Fala aí, aqui é o Guga do Responde Aí! Tudo bem com você?

No tópico de hoje nós iremos conversar um pouquinho sobre os arquivos na linguagem C, mas antes de começarmos, eu tenho uma pergunta:

Você sabe qual é a utilidade dos arquivos na programação em geral?

Por incrível que pareça, arquivos são extremamente importantes até os dias de hoje como ferramenta de armazenamento de dados.

Achou interessante? Então, vem comigo!

Arquivos

Os arquivos são utilizados para o armazenamento em massa de dados. Além disso, eles são armazenados em memória secundária.

Mas o que isso significa?

Memória secundária é um termo utilizado em computação para referenciar dispositivos que são capazes de armazenar grande quantidade de dados, além disso são dispositivos não voláteis, isso significa que os dados não são apagados quando o computador é desligado, diferentemente das memórias principais.

Eu sei que estamos entrando em termos mais voltado para a computação, mas para facilitar, quando falarmos de memória secundária lembre-se do seu pen-drive que mesmo fora de um computador guarda aquela apresentação que salva o semestre, do cartão S.D do seu celular que quando descarrega não apaga todas as suas fotos, quando a energia acaba e você não precisa reinstalar o sistema operacional etc.

Já pensou? Ainda bem que nada disso acontece!

Mas enfim, percebeu o porquê os arquivos são tão interessantes?

A capacidade de guardar um dado em uma execução de programa e poder recuperá-lo em outra execução é o princípio de sistemas muito mais modernos que são usados nos dias de hoje, os bancos de dados.

Arquivos de texto

A realidade é que existem milhares de tipos de arquivos, mas que os programas só enxergam dois tipos em específico. O primeiro deles é o arquivo de texto, nele os caracteres podem ser exibidos na tela e o mesmo pode até ser editado através de um editor de texto simples. Porém, também existem os arquivos binários, cujo conteúdo nada mais é do que uma sequência de bits que não podem ser lidos diretamente.

Infelizmente não falaremos sobre arquivos binários, pois eles exigem um conhecimento um pouquinho mais avançado.

Mas se a sua faculdade estiver cobrando isso, manda uma mensagem para nós que será um prazer para mim escrever sobre e conversar ainda mais com você!

Declarando um arquivo

Os arquivos são declarados e manipulados através de um tipo apontador para arquivo, observe essa declaração:

Lembre-se, esse tipo requer a inclusão da biblioteca padrão stdio. De forma geral, a declaração de um apontador para arquivo é feita da seguinte forma:

Agora que já tivemos uma introdução sobre os arquivos na linguagem C, que tal praticarmos um pouco esse conhecimento nos exercícios de fixação?

Criando ou abrindo um arquivo

Para utilizarmos um arquivo de texto nós precisamos primeiro abrir esse arquivo, não é mesmo?

Com um programa não é diferente, para que ele possa acessar dados ou escrever informações em um arquivo, primeiro ele deve abrir esse arquivo.

E isso pode ser feito da seguinte forma:

Onde o ponteiro m e u A r q u i v o receberá através da função fopen o endereço de memória de um arquivo com nome “arq.txt” aberto em um modo específico, esse que é passado como segundo parâmetro da função.

No exemplo anterior, o modo de abertura utilizado foi o “w”, isso significa que o arquivo será aberto em modo de escrita. Esse modo por sua vez tem uma peculiaridade... Se o arquivo “arq.txt” não existir, o mesmo será criado e aberto em modo de escrita. Caso ele já exista, será apenas aberto em modo de escrita.

O modo de escrita permite que nós possamos escrever informações em um arquivo.

Nós também podemos abrir arquivos em modo de leitura:

Só que diferentemente da abertura em modo de escrita, o arquivo “arq.txt” deve necessariamente existir, uma vez que esse modo de abertura não é capaz de criar arquivos.

O modo de leitura permite que nós possamos ler dados de um arquivo.

Vale ressaltar que os arquivos criados serão guardados no mesmo diretório em que o executável do programa está.

Fechando um arquivo

Assim como nós fechamos um arquivo após utilizá-lo, todo arquivo utilizado por um programa também deve ser fechado.

E isso pode ser feito facilmente da seguinte forma:

Onde basta utilizarmos a função fclose passando como parâmetro para ela o ponteiro responsável por armazenar o endereço de memória do nosso arquivo, que nesse caso é o ponteiro m e u A r q u i v o .

Arquivos de texto

Declarando um arquivo

Criando ou abrindo um arquivo

Fechando um arquivo

Exercícios Resolvidos

Exercício Resolvido #1

Observe o seguinte programa:

Substitua o comentário da linha 07 pelo comando que falta para que esse programa seja capaz de abrir e fechar um determinado arquivo de texto denominado “arq.txt”.

Passo 1

Logo de cara nós conseguimos perceber que o comando faltante nesse programa se trata da abertura do arquivo com a função fopen, já que após esse comando há um trecho de código que é responsável por verificar se o arquivo foi aberto corretamente ou não.

Mas só isso não é o suficiente para nós... Em que modo de abertura devemos abrir esse arquivo?

Moleza! Se analisarmos a imagem com mais calma, nós iremos perceber que na linha 10, linha responsável por imprimir a mensagem de confirmação de abertura do arquivo, existe a afirmação de que o arquivo será aberto no modo de leitura.

Passo 2

Sendo assim, sabendo que o arquivo se chama “arq.txt” e que o mesmo deve ser aberto no modo de leitura, basta completarmos o programa com a seguinte linha de código:

Isso fará com que o arquivo “arq.txt” seja aberto no modo de leitura e um ponteiro para ele seja atribuído a m e u A r q u i v o .

Resposta

Portanto, o comando faltante em nosso programa é: