Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Manipulação de Arquivos em C++: Dominando Operações Open, Read, Write e Close

O que é Manipulação de Arquivos em C++?

A manipulação de arquivos permite persistir dados do programa em dispositivos de armazenamento. Ao direcionar a saída do programa para um arquivo, você pode realizar manipulação, análise ou arquivamento posteriores nesses dados.

Um stream (fluxo) é uma abstração que representa uma fonte ou destino contínuo de caracteres. O C++ fornece uma robusta biblioteca fstream que oferece classes e funções para trabalhar perfeitamente com arquivos.

Neste tutorial você aprenderá:

A Biblioteca fstream

A biblioteca fstream fornece três classes principais:

Para usar estas classes, inclua o cabeçalho fstream e, se desejar saída para console, iostream também.

Como Abrir Arquivos

Antes de qualquer operação de arquivo, o arquivo deve ser aberto. Use ofstream para acesso somente escrita, ifstream para somente leitura, e fstream para ambos. Cada classe fornece um membro open():

open(nome_arquivo, modo);
ValorDescrição
ios::appModo append – escritas são adicionadas ao final do arquivo.
ios::ateAbre e posiciona imediatamente no final.
ios::inAbre para leitura.
ios::outAbre para escrita.
ios::truncTrunca arquivo existente para comprimento zero.

Múltiplas flags podem ser combinadas usando o operador OR bitwise (|).

Exemplo 1: Criando um Arquivo

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream meu_arquivo;
    meu_arquivo.open("meu_arquivo", ios::out);
    if (!meu_arquivo) {
        cout << "Arquivo não criado!";
    } else {
        cout << "Arquivo criado com sucesso!";
        meu_arquivo.close();
    }
    return 0;
}

Análise do Código:

  1. Inclui iostream para I/O de console.
  2. Inclui fstream para streams de arquivo.
  3. Usa namespace std para brevidade.
  4. Instancia um objeto fstream chamado meu_arquivo.
  5. Abre o arquivo em modo de escrita (ios::out).
  6. Verifica abertura bem-sucedida; caso contrário, relata falha.
  7. Em sucesso, imprime confirmação e fecha o arquivo.
  8. Retorna 0 para indicar terminação normal.

Como Fechar Arquivos

Embora o C++ automaticamente dê flush e feche streams na saída do programa, fechar explicitamente um arquivo após sua última operação é considerada boa prática.

O membro close() está disponível em fstream, ofstream e ifstream:

void close();

Como Escrever em Arquivos

Operações de escrita usam o operador de inserção de stream (<<). Texto a ser armazenado deve ser citado ou transmitido diretamente.

Exemplo 2: Escrevendo Texto

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream meu_arquivo;
    meu_arquivo.open("meu_arquivo.txt", ios::out);
    if (!meu_arquivo) {
        cout << "Arquivo não criado!";
    } else {
        cout << "Arquivo criado com sucesso!";
        meu_arquivo << "Guru99";
        meu_arquivo.close();
    }
    return 0;
}

Análise do Código:

  1. Inclui cabeçalhos necessários.
  2. Cria um objeto fstream.
  3. Abre o arquivo alvo em modo de escrita.
  4. Valida o stream de arquivo.
  5. Insere a string "Guru99" no arquivo.
  6. Fecha o stream.
  7. Retorna 0.

Como Ler de Arquivos

Leitura usa o operador de extração de stream (>>) igual ao cin. Os dados são transmitidos para variáveis de tipos apropriados.

Exemplo 3: Lendo Caracteres

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream meu_arquivo;
    meu_arquivo.open("meu_arquivo.txt", ios::in);
    if (!meu_arquivo) {
        cout << "Arquivo não encontrado";
    } else {
        char ch;
        while (true) {
            meu_arquivo >> ch;
            if (meu_arquivo.eof()) break;
            cout << ch;
        }
    }
    meu_arquivo.close();
    return 0;
}

Análise do Código:

  1. Inclui iostream e fstream.
  2. Abre o arquivo para leitura (ios::in).
  3. Verifica existência; se ausente, notifica o usuário.
  4. Lê caracteres um a um até EOF ser atingido.
  5. Imprime cada caractere no console.
  6. Fecha o stream.
  7. Retorna 0.

Resumo

Linguagem C

  1. Manipulação de Arquivos em C: Dominando I/O com fopen, fprintf, fread e fseek
  2. Inicializando Block RAM de FPGA a partir de Arquivos de Texto Usando a Biblioteca TEXTIO do VHDL
  3. Dominando Tratamento de Exceções em C++: Exemplos Práticos com Try, Catch, Throw
  4. Dominando Comentários em C: Escrevendo Notas Claras e Eficazes
  5. Lendo Arquivos em Java com BufferedReader – Guia Prático com Exemplos
  6. Entendendo Arquivos de Cabeçalho em C: Tipos, Uso e Boas Práticas
  7. Dominando I/O de Arquivos em C++: Leitura e Escrita com fstream
  8. Domine o Tratamento de Sinais em C++: Gestão Segura de Interrupções e Término Limpo de Programas
  9. Python I/O de Arquivos: Dominando Operações de Entrada e Saída
  10. Micrômetro Explicado: Como Ler e Usar Esta Ferramenta de Medição de Precisão