Como ler e escrever em um arquivo em C ++

Como ler e escrever em um arquivo em C ++

Neste artigo, vamos mostrar como ler e escrever em um arquivo na linguagem de programação C ++ usando vários exemplos. Para entender as operações de arquivos C ++ como ler e gravar, devemos primeiro entender o conceito de um fluxo em c++.

O que é um riacho?

Um fluxo é simplesmente um fluxo de dados ou caracteres. Existem dois tipos de fluxos: fluxos de entrada e fluxos de saída. Um fluxo de entrada é usado para ler os dados de um dispositivo de entrada externa, como um teclado, enquanto um fluxo de saída é usado para gravar dados no dispositivo de saída externo, como um monitor. Um arquivo pode ser considerado como uma fonte de entrada e saída.

Em C ++, usamos um fluxo para enviar ou receber dados para ou de uma fonte externa.

Podemos usar classes internas para acessar um fluxo de entrada/saída, i.e., "IOS".

Aqui está a hierarquia da classe de fluxo da linguagem de programação C ++:

Os objetos “CIN” e “Cout” são usados ​​para ler os dados do teclado e exibir a saída no monitor, respectivamente. Além disso, "ifstream", que significa "fluxo de arquivos de entrada", é usado para ler um fluxo de dados de um arquivo e "ofstream", que significa "Stream de arquivo de saída" é usado para gravar um fluxo de dados para um arquivo.

O “iostram.O arquivo H ”contém todas as classes de fluxo de entrada/saída padrão necessárias na linguagem de programação C ++.

Exemplos

Agora que você entende o básico dos fluxos, discutiremos os seguintes exemplos para ajudá -lo a entender melhor as operações de arquivos no C ++:

  • Exemplo 1: Abra e feche um arquivo
  • Exemplo 2: Escreva em um arquivo
  • Exemplo 3: Leia de um arquivo
  • Exemplo 4: Leia e escreva em um arquivo
  • Exemplo 5: Leia e escreva em um arquivo binário

Exemplo 1: Abra e feche um arquivo

Neste programa de exemplo, demonstraremos como abrir/criar um arquivo e como fechar o arquivo em c++. Como você pode ver no programa abaixo, incluímos a biblioteca necessária para operações de arquivo.

Para abrir e fechar um arquivo, precisamos de um objeto de stream. Então, para ler ou escrever em um arquivo, temos que abrir o arquivo. Incluímos o arquivo de cabeçalho FStream na linha número-1 para que possamos acessar a classe de stream.

Declaramos um myfile_handler como um objeto de stream dentro da função principal. Podemos então usar a função Open () para criar um arquivo vazio e a função Close () para fechar o arquivo.

#incluir
usando namespace std;
int main ()

OfStream myfile_handler;
// arquivo aberto
myfile_handler.abrir ("file_1.TXT");
// Fechar o arquivo
myfile_handler.fechar();
retornar 0;

Agora, compilaremos o programa e examinaremos a saída. Como você pode ver na janela de saída abaixo, o “file_1.O arquivo txt ”foi criado após a execução do programa. O tamanho do arquivo é zero, pois não escrevemos nenhum conteúdo no arquivo.

Exemplo 2: Escreva em um arquivo

No programa de exemplo anterior, mostramos como abrir um arquivo e como fechar o arquivo. Agora, mostraremos como escrever algo em um arquivo.

Podemos escrever em um arquivo usando o operador de inserção de fluxo, eu.e., ““<<”. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (“<<”) indicates that we are inserting the string into the output file stream object.

#incluir
usando namespace std;
int main ()

OfStream myfile_handler;
// arquivo aberto
myfile_handler.abrir ("file_1.TXT");
// Escreva no arquivo
myfile_handler << "This is a sample test File. " << endl;
myfile_handler << "This is the second line of the file. " << endl;
// Fechar o arquivo
myfile_handler.fechar();
retornar 0;

Agora, vamos compilar o programa acima e executá -lo. Como você pode ver abaixo, escrevemos com sucesso no arquivo file_1.TXT.

Exemplo 3: Leia de um arquivo

Nos exemplos anteriores, mostramos como escrever conteúdo em um arquivo. Agora, vamos ler o conteúdo do arquivo que criamos no Exemplo 2 e exibir o conteúdo no dispositivo de saída padrão, i.e., o monitor.

Usamos a função getLine () para ler a linha completa do arquivo e depois "cout" para imprimir a linha no monitor.

#incluir
#incluir
#incluir
usando namespace std;
int main ()

ifstream myfile_handler;
string myline;
// arquivo aberto no modo de leitura
myfile_handler.abrir ("file_1.TXT");
if (myfile_handler.está aberto())

// Continue lendo o arquivo
while (getLine (myfile_handler, myline))

// Imprima a linha na saída padrão
cout << myLine << endl;

// Fechar o arquivo
myfile_handler.fechar();

outro

cout << "Unable to open the file!";

retornar 0;

Agora, vamos imprimir o conteúdo de file_1.txt usando o seguinte comando: gat file_1.TXT. Depois de compilar e executar o programa, fica claro que a saída corresponde ao conteúdo do arquivo. Portanto, lemos com sucesso o arquivo e imprimimos o conteúdo do arquivo para o monitor.

Exemplo 4: Leia e escreva em um arquivo

Até agora, mostramos como abrir, ler, escrever e fechar um arquivo. Em C ++, também podemos ler e escrever em um arquivo ao mesmo tempo. Para ler e escrever em um arquivo, temos que obter um objeto FStream e abrir o arquivo no modo "iOS :: in" e "iOS :: Out".

Neste exemplo, primeiro escrevemos algum conteúdo para o arquivo. Em seguida, lemos os dados do arquivo e os imprimimos para o monitor.

#incluir
#incluir
#incluir
usando namespace std;
int main ()

fStream myfile_handler;
string myline;
// arquivo aberto
myfile_handler.abrir ("file_1.txt ", iOS :: in | iOS :: Out);
// Verifique se o arquivo foi aberto
se(!myfile_handler)

cout << "File did not open!";
saída (1);

// Escreva no arquivo
myfile_handler << "1. This is another sample test File. " << endl;
myfile_handler << "2. This is the second line of the file. " << endl;
myfile_handler.procureg (iOS :: BEG);
// Leia o arquivo
if (myfile_handler.está aberto())

// Continue lendo o arquivo
while (getLine (myfile_handler, myline))

// Imprima a linha na saída padrão
cout << myLine << endl;

// Fechar o arquivo
myfile_handler.fechar();

outro

cout << "Unable to open the file!";

myfile_handler.fechar();
retornar 0;

Agora, vamos compilar e executar o programa.

Exemplo 5: Leia e escreva em um arquivo binário

Neste exemplo, vamos declarar uma aula e depois escrever o objeto para um arquivo binário. Para simplificar este exemplo, declaramos a classe de funcionários com uma variável pública EMP_ID. Em seguida, leremos o arquivo binário e imprimiremos a saída para o monitor.

#incluir
#incluir
usando namespace std;
funcionário da classe

público:
int emp_id;
;
int main ()

OFSTREAM BINOUTFILE_HANDLER;
ifstream bininfile_handler;
Funcionário empobj_w, empobj_r;
// arquivo aberto
binoutfile_handler.aberto ("funcionário.dat ", iOS :: Out | iOS :: binário);
// Verifique se o arquivo foi aberto
se(!binoutfile_handler)

cout << "File did not open!";
saída (1);

// Inicialize o empobj_w
empobj_w.emp_id = 1512;
// Escreva no arquivo
binoutfile_handler.escreva ((char *) & empobj_w, sizeof (funcionário));
binoutfile_handler.fechar();
se(!binoutfile_handler.bom())

cout << "Error occured during writing the binary file!" << endl;
saída (2);

// agora, vamos ler o funcionário.arquivo dat
bininfile_handler.aberto ("funcionário.dat ", iOS :: in | iOS :: binário);
// Verifique se o arquivo foi aberto
se(!bininfile_handler)

cout << "File did not open!";
saída (3);

// Leia o conteúdo do arquivo binário
bininfile_handler.leia ((char *) & empobj_r, sizeof (funcionário));
bininfile_handler.fechar();
se(!bininfile_handler.bom())

cout << "Error occured during reading the binary file!" << endl;
saída (4);

// Imprima a saída de empobj_r
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
retornar 0;

Conclusão

Os arquivos são usados ​​principalmente para armazenar os dados e desempenham um papel importante na programação do mundo real. Neste artigo, mostramos como usar várias operações de arquivos com a linguagem de programação C ++ trabalhando através de vários exemplos. Além disso, mostramos como ler e escrever dados em arquivos de texto e arquivos binários.