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/