Aula 13 – Arquivos (Gerenciamento de Dados) 💾
Até agora, todos os dados que digitamos sumiam assim que o programa era fechado. Para criar sistemas reais, precisamos salvar as informações no disco rígido. Em C, fazemos isso usando o ponteiro especial FILE.
📂 1. Abrindo e Fechando Arquivos
Para trabalhar com um arquivo, primeiro devemos "abri-lo" e, ao terminar, "fechá-lo" obrigatoriamente para garantir que os dados sejam salvos.
#include <stdio.h>
int main() {
FILE *arquivo;
// fopen(nome_do_arquivo, modo)
arquivo = fopen("dados.txt", "w"); // "w" = write (escrever)
if (arquivo == NULL) {
printf("Erro ao abrir o arquivo!\n");
return 1;
}
// ... realizar operações ...
fclose(arquivo); // SEMPRE feche o arquivo!
return 0;
}
🚦 2. Modos de Abertura
| Modo | Descrição |
|---|---|
"r" |
Read: Abre para leitura (o arquivo deve existir). |
"w" |
Write: Abre para escrita (cria novo ou sobrescreve o existente). |
"a" |
Append: Abre para adicionar ao final (não apaga o que já existe). |
✍️ 3. Escrevendo no Arquivo (fprintf)
É quase igual ao printf, mas o primeiro parâmetro é o ponteiro do arquivo.
📖 4. Lendo do Arquivo (fscanf e fgets)
fscanf: Lê dados formatados (para no espaço).fgets: Lê uma linha inteira do arquivo.
💻 Exemplo Prático: Diário Simples
FILE *arq = fopen("notas.txt", "a");
char texto[50];
printf("Escreva algo para o arquivo: ");
fgets(texto, 50, stdin);
fprintf(arq, "%s", texto);
fclose(arq);
🚀 Mini-Projeto da Aula: "Gerador de Log"
Objetivo: Criar um programa que peça o nome do usuário e registre em um arquivo chamado acessos.log o nome dele seguido da frase "Acessou o sistema". O programa deve usar o modo "a" para não apagar os acessos anteriores.
📝 Exercícios de Fixação
- Crie um programa que abra um arquivo de texto, leia o conteúdo e o imprima em letras maiúsculas no terminal.
- Escreva um programa que peça 5 números ao usuário e os salve em um arquivo chamado
numeros.txt, um por linha. - Desafio: Crie uma função que conte quantas linhas existem em um arquivo de texto específico.