C ++

Como ler e gravar em um arquivo em C ++

Como ler e gravar em um arquivo em C ++

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

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.

#incluir
usando 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.

#incluir
usando 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.

Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...
Controle e gerencie o movimento do mouse entre vários monitores no Windows 10
Gerenciador de mouse com tela dupla permite que você controle e configure o movimento do mouse entre vários monitores, diminuindo seus movimentos pert...
WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...