C++ Arquivos

Conteúdo:

  • Abrir e fechar arquivos
  • Verificar a existência de arquivos

A manipulação de arquivos demonstrada neste post é feita através dos recursos providos pela biblioteca fstream.

Abrir e fechar arquivos

Um arquivo pode ser aberto utilizando apenas o método open de um objeto do tipo fstream.

#include <iostream>
#include <fstream>
using namespace std;
fstream arquivo;
arquivo.open ("/caminho/nome_arquivo");

Se utilizado desta forma, caso o arquivo não exista, nenhum arquivo será criado.

O método open ainda conta com flags que determinam como – ou para que – o arquivo será aberto:

  • ios::in – arquivo será aberto para leitura;
  • ios::out – arquivo será aberto para escrita;
  • ios::binary – aberto em modo binário;
  • ios::ate – coloca o cursor no final do arquivo;
  • ios::app – faz com que qualquer operação de escrita adicione o conteúdo no final do arquivo, não apaga o que já está escrito;
  • ios::trunc – se há conteúdo no arquivo aberto para escrita, este conteúdo será apagado.

A utilização destas flags pode ser combinada utilizando “pipes” (“|”).

Exemplo: para abrir um arquivo para escrita e que todo o conteúdo a ser adicionado seja escrito abaixo do conteúdo já existente:

arquivo.open ("/caminho/nome_arquivo", ios::out | ios::app);

Se o arquivo não existir será criado um no caminho e com o nome indicados se alguma flag for utilizada.

E para fechar o arquivo aberto:

arquivo.close();

Verificar a existência de arquivos

Na biblioteca fstream há alguns métodos que verificam a situação de um arquivo. Para checar se um arquivo existe pode ser utilizado o método is_open().

Este método retorna 1 se um arquivo extiver aberto e 0 caso não esteja.

No exemplo abaixo será utilizado o método open sem o uso de flags porque assim se não houver o arquivo nenhum será criado. Se houver o arquivo ele será aberto e o método is_open retornará 1, caso contrário 0.

#include <iostream>
#include <fstream>
using namespace std;
fstream arquivo;
arquivo.open ("/caminho/nome_arquivo");
if (arquivo.is_open() == 1){
     cout  << "existe o arquivo" << endl;
     arquivo.close();
}
else
     cout  << "nao existe o arquivo" << endl;
return 0;

_______________

Fonte: http://www.cplusplus.com/doc/tutorial/files/

Comente este post.

Seu comentário:

*obrigatório/required