Operações de Entrada e Saída em Arquivos com C++
Operações de Entrada e Saída em Arquivos com C++
Trabalhar com arquivos é uma habilidade essencial em programação. C++ oferece ferramentas poderosas para ler e escrever dados em arquivos de forma segura e eficiente. Neste guia, você aprenderá como usar file streams para manipular arquivos.
O que são File Streams?
Um file stream é um objeto que conecta seu programa a um arquivo no disco. Existem três tipos principais:
- ifstream - para ler arquivos (input file stream)
- ofstream - para escrever em arquivos (output file stream)
- fstream - para ler e escrever no mesmo arquivo
Todos estão disponíveis na biblioteca <fstream>.
Escrevendo em um Arquivo
Vamos começar com um exemplo simples de escrita:
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ofstream arquivo("dados.txt");
if (arquivo.is_open()) {
arquivo << "Olá, mundo!\n";
arquivo << "Primeira linha de dados\n";
arquivo.close();
cout << "Arquivo escrito com sucesso!" << endl;
} else {
cout << "Erro ao abrir arquivo" << endl;
}
return 0;
}Observe que:
- Criamos um objeto
ofstreamcom o nome do arquivo - Verificamos se o arquivo foi aberto com
is_open() - Usamos o operador
<<para escrever dados - Fechamos o arquivo com
close()
Lendo de um Arquivo
Agora vamos ler o arquivo que criamos:
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() {
ifstream arquivo("dados.txt");
string linha;
if (arquivo.is_open()) {
while (getline(arquivo, linha)) {
cout << linha << endl;
}
arquivo.close();
} else {
cout << "Erro ao abrir arquivo" << endl;
}
return 0;
}Aqui usamos:
ifstreampara ler o arquivogetline()para ler uma linha inteira- Um loop
whilepara processar todas as linhas
Trabalhando com Dados Estruturados
Você pode escrever e ler números também:
#include <fstream>
#include <iostream>
using namespace std;
int main() {
// Escrevendo números
ofstream saida("numeros.txt");
for (int i = 1; i <= 5; i++) {
saida << i << " ";
}
saida.close();
// Lendo números
ifstream entrada("numeros.txt");
int numero;
while (entrada >> numero) {
cout << numero * 2 << endl;
}
entrada.close();
return 0;
}Boas Práticas para Segurança
1. Sempre verifique se o arquivo foi aberto:
if (!arquivo.is_open()) {
cerr << "Falha ao abrir arquivo" << endl;
return 1;
}2. Feche arquivos quando terminar: Isso libera recursos do sistema. Você também pode usar a destruição automática do objeto.
3. Trate exceções se necessário:
try {
ifstream arquivo("dados.txt");
if (!arquivo) throw runtime_error("Arquivo não encontrado");
} catch (const exception& e) {
cerr << "Erro: " << e.what() << endl;
}Modos de Abertura
Você pode controlar como um arquivo é aberto usando flags:
ios::in- leitura (padrão para ifstream)ios::out- escrita (padrão para ofstream)ios::app- adiciona ao final do arquivoios::binary- modo binário
// Adicionar dados ao final do arquivo
ofstream arquivo("dados.txt", ios::app);
arquivo << "Nova linha adicionada\n";
arquivo.close();Resumo Prático
As operações de arquivo em C++ seguem um padrão simples: abrir → verificar → usar → fechar. Com essas ferramentas, você pode criar programas que persistem dados entre execuções, uma habilidade fundamental em desenvolvimento de software.
Key Takeaways
- Use ifstream para ler arquivos, ofstream para escrever e fstream para ambas as operações
- Sempre verifique se um arquivo foi aberto com sucesso antes de usá-lo com is_open()
- Feche arquivos após terminar para liberar recursos do sistema e garantir que os dados sejam salvos
Enjoyed this reading?
SharpStack delivers personalized tech readings every day, calibrated to your skill level. 5 minutes a day to stay sharp.
“Stay sharp. At your pace. Everyday.”