Neste artigo, mostraremos como ler e gravar em um arquivo na linguagem de programação C ++ usando vários exemplos. Para entender as operações de arquivo C ++ como leitura e gravação, devemos primeiro entender o conceito de fluxo em C++.
O que é um fluxo?
Um stream é simplesmente um fluxo de dados ou caracteres. Existem dois tipos de streams: streams de entrada e streams de saída. Um fluxo de entrada é usado para ler os dados de um dispositivo de entrada externo, 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 uma fonte de entrada e saída.
Em C ++, usamos um fluxo para enviar ou receber dados de ou para uma fonte externa.
Podemos usar classes integradas para acessar um fluxo de entrada / saída, i.e., “Ios”.
Aqui está a hierarquia de classes de fluxo da linguagem de programação C ++:
Os objetos "cin" e "cout" são usados para ler os dados do teclado e para exibir a saída no monitor, respectivamente. Além disso, "ifstream", que significa "fluxo de arquivo de entrada", é usado para ler um fluxo de dados de um arquivo, e "ofstream", que significa "fluxo de arquivo de saída", é usado para escrever 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 os fundamentos dos streams, discutiremos os exemplos a seguir para ajudá-lo a entender melhor as operações de arquivo em C ++:
- Exemplo 1: abrir e fechar um arquivo
- Exemplo 2: gravar em um arquivo
- Exemplo 3: ler de um arquivo
- Exemplo 4: Ler e gravar em um arquivo
- Exemplo 5: ler e gravar em um arquivo binário
Exemplo 1: abrir e fechar um arquivo
Neste programa de exemplo, vamos demonstrar 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 ofstream. 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 ofstream.
Declaramos um myFile_Handler como um objeto de ofstream 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.
#incluirusando namespace std;
int main ()
ofstream myFile_Handler;
// Arquivo aberto
myFile_Handler.abrir ("Arquivo_1.TXT");
// Arquivo Fechar
myFile_Handler.perto();
return 0;
Agora, vamos compilar o programa e examinar a saída. Como você pode ver na janela de saída abaixo, o “Arquivo_1.txt ”foi criado após a execução do programa. O tamanho do arquivo é zero, pois não gravamos nenhum conteúdo no arquivo.
Exemplo 2: gravar em um arquivo
No programa de exemplo anterior, mostramos como abrir um arquivo e como fechá-lo. Agora, mostraremos como escrever algo em um arquivo.
Podemos escrever em um arquivo usando o operador de inserção de fluxo, i.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.
#incluirusando namespace std;
int main ()
ofstream myFile_Handler;
// Arquivo aberto
myFile_Handler.abrir ("Arquivo_1.TXT");
// Grava no arquivo
myFile_Handler << "This is a sample test File. " << endl;
myFile_Handler << "This is the second line of the file. " << endl;
// Arquivo Fechar
myFile_Handler.perto();
return 0;
Agora, vamos compilar o programa acima e executá-lo. Como você pode ver abaixo, gravamos com sucesso no arquivo File_1.TXT.
Exemplo 3: ler de um arquivo
Nos exemplos anteriores, mostramos como gravar 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 então “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 ("Arquivo_1.TXT");
if (myFile_Handler.está aberto())
// Continue lendo o arquivo
while (getline (myFile_Handler, myLine))
// imprime a linha na saída padrão
cout << myLine << endl;
// Arquivo Fechar
myFile_Handler.perto();
senão
cout << "Unable to open the file!";
return 0;
Agora, vamos imprimir o conteúdo do Arquivo_1.txt usando o seguinte comando: cat File_1.TXT. Depois de compilar e executar o programa, fica claro que a saída corresponde ao conteúdo do arquivo. Portanto, lemos o arquivo com sucesso e imprimimos o conteúdo do arquivo no monitor.
Exemplo 4: Ler e gravar em um arquivo
Até agora, mostramos como abrir, ler, escrever e fechar um arquivo. Em C ++, também podemos ler e gravar em um arquivo ao mesmo tempo. Para ler e gravar em um arquivo, temos que obter um objeto fstream e abrir o arquivo no modo “ios :: in” e “ios :: out”.
Neste exemplo, primeiro gravamos algum conteúdo no arquivo. Então, lemos os dados do arquivo e os imprimimos no monitor.
#incluir#incluir
#incluir
usando namespace std;
int main ()
fstream myFile_Handler;
string myLine;
// Arquivo aberto
myFile_Handler.abrir ("Arquivo_1.txt ", ios :: in | ios :: out);
// Verifique se o arquivo foi aberto
E se(!myFile_Handler)
cout << "File did not open!";
saída (1);
// Grava 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.searchg (ios :: implorar);
// Leia o arquivo
if (myFile_Handler.está aberto())
// Continue lendo o arquivo
while (getline (myFile_Handler, myLine))
// imprime a linha na saída padrão
cout << myLine << endl;
// Arquivo Fechar
myFile_Handler.perto();
senão
cout << "Unable to open the file!";
myFile_Handler.perto();
return 0;
Agora, vamos compilar e executar o programa.
Exemplo 5: ler e gravar em um arquivo binário
Neste exemplo, vamos declarar uma classe e, em seguida, escrever o objeto em um arquivo binário. Para simplificar este exemplo, declaramos a classe Employee com uma variável pública emp_id. Então, vamos ler o arquivo binário e imprimir a saída para o monitor.
#incluir#incluir
usando namespace std;
classe Funcionário
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 :: binary);
// Verifique se o arquivo foi aberto
E se(!binOutFile_Handler)
cout << "File did not open!";
saída (1);
// Inicialize empObj_W
empObj_W.emp_id = 1512;
// Grava no arquivo
binOutFile_Handler.escrever ((char *) & empObj_W, sizeof (funcionário));
binOutFile_Handler.perto();
E se(!binOutFile_Handler.Boa())
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 :: binary);
// Verifique se o arquivo foi aberto
E se(!binInFile_Handler)
cout << "File did not open!";
saída (3);
// Leia o conteúdo do arquivo binário
binInFile_Handler.ler ((char *) & empObj_R, sizeof (funcionário));
binInFile_Handler.perto();
E se(!binInFile_Handler.Boa())
cout << "Error occured during reading the binary file!" << endl;
saída (4);
// Imprime a saída de empObj_R
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
return 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 arquivo com a linguagem de programação C ++, trabalhando com vários exemplos. Além disso, mostramos como ler e gravar dados em arquivos de texto e arquivos binários.