Capítulo 12: Arquivos (Escrita) 📝🧟
Neste capítulo, vamos aprender a salvar informações em arquivos de texto externos para que elas não se percam quando o programa for fechado, com o tema The Last of Us!
📖 Por que usar Arquivos?
Até agora, todas as variáveis que criamos sumiam da memória assim que o programa terminava. Para salvar o progresso de um jogo ou manter um registro (log) de sobreviventes, precisamos gravar esses dados no disco rígido do computador!
Em C, usamos um ponteiro especial do tipo FILE *.
📖 Exemplo Guiado: Registro de Sobreviventes
Vamos criar um programa que salva o nome e a condição de um sobrevivente em um arquivo chamado diario.txt.
- Crie o arquivo
salvar_sobrevivente.cna pastasrc/:
#include <stdio.h>
int main() {
// Ponteiro para o arquivo
FILE *arquivo;
// Abrindo o arquivo no modo "w" (write - escrita)
// Se o arquivo não existir, ele será criado. Se existir, será apagado e recriado!
arquivo = fopen("diario.txt", "w");
if (arquivo == NULL) {
printf("Erro ao abrir o arquivo!\n");
return 1;
}
// Escrevendo no arquivo usando fprintf (funciona igual ao printf, mas grava no arquivo)
fprintf(arquivo, "Registro de Sobrevivente\n");
fprintf(arquivo, "Nome: Joel\n");
fprintf(arquivo, "Status: Saudavel\n");
// REGRA DE OURO: Sempre feche o arquivo!
fclose(arquivo);
printf("Dados salvos no diario.txt com sucesso!\n");
return 0;
}🕹️ Como Executar e Testar no VS Code
- Abra o terminal integrado.
- Compile:
gcc salvar_sobrevivente.c -o salvar_sobrevivente - Execute:
./salvar_sobrevivente - Um arquivo chamado
diario.txtaparecerá na sua pasta! Abra-o para ver o conteúdo.
📊 Ilustração Visual: Fluxo de Escrita
Veja como o C envia os dados para o disco:
graph LR A[💻 Programa em C] -->|1. fopen 'w'| B[FILE* Ponteiro] B -->|2. fprintf| C[💾 Arquivo no Disco: diario.txt] C -->|3. fclose| C
🛠️ Prática Obrigatória 1: Modo Append (Anexar)
O modo "w" apaga o arquivo se ele já existir. Para apenas ADICIONAR novas linhas no final do arquivo sem apagar o que já estava lá, usamos o modo "a" (append). Crie um programa chamado anexar_nota.c que use o modo "a" para adicionar a linha “Nota: Cuidado com os estaladores!” no arquivo diario.txt.
🔑 Gabarito de Código
Prática 1: anexar_nota.c
#include <stdio.h>
int main() {
FILE *arquivo;
// Modo "a" de append
arquivo = fopen("diario.txt", "a");
if (arquivo == NULL) {
printf("Erro ao abrir o arquivo!\n");
return 1;
}
fprintf(arquivo, "Nota: Cuidado com os estaladores!\n");
fclose(arquivo);
printf("Nota adicionada ao diario!\n");
return 0;
}📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o padrão estabelecido no Guia)