anuseio de arquivos C ++: como abrir, gravar, ler e fechar arquivos em C ++

O que é manipulação de arquivos em C ++?

Os arquivos armazenam dados permanentemente em um dispositivo de armazenamento. Com o manuseio de arquivos, a saída de um programa pode ser armazenada em um arquivo. Várias operações podem ser realizadas nos dados enquanto estão no arquivo.

Um fluxo é uma abstração de um dispositivo onde as operações de entrada / saída são realizadas. Você pode representar um fluxo como um destino ou uma fonte de caracteres de comprimento indefinido. Isso será determinado por seu uso. C ++ fornece uma biblioteca que vem com métodos para manipulação de arquivos. Vamos discutir isso.

Neste tutorial c ++, você aprenderá:

The fstream Library

A biblioteca fstream fornece aos programadores C ++ três classes para trabalhar com arquivos. Essas classes incluem:

  • ofstream - Esta classe representa um fluxo de saída. É usado para criar arquivos e gravar informações em arquivos.
  • ifstream - Esta classe representa um fluxo de entrada. É usado para ler informações de arquivos de dados.
  • fstream - Esta classe geralmente representa um fluxo de arquivo. Ele vem com recursos ofstream / ifstream. Isso significa que ele é capaz de criar arquivos, gravar em arquivos, ler arquivos de dados.

A imagem a seguir facilita o entendimento:

biblioteca fstream

software grátis para baixar vídeos do youtube

Para usar as classes acima da biblioteca fstream, você deve incluí-la em seu programa como um arquivo de cabeçalho. Obviamente, você usará a diretiva do pré-processador #include. Você também deve incluir o arquivo de cabeçalho iostream.

Como abrir arquivos

Antes de realizar qualquer operação em um arquivo, você deve primeiro abri-lo. Se você precisar gravar no arquivo, abra-o usando os objetos fstream ou ofstream. Se você só precisa ler o arquivo, abra-o usando o objeto ifstream.

Os três objetos, ou seja, fstream, ofstream e ifstream, têm a função open () definida neles. A função assume esta sintaxe:

 open (file_name, mode); 
  • O parâmetro file_name denota o nome do arquivo a ser aberto.
  • O parâmetro de modo é opcional. Pode assumir qualquer um dos seguintes valores:
Valor Descrição
ios :: appO modo Append. A saída enviada ao arquivo é anexada a ele.
ios :: ateEle abre o arquivo para a saída e move o controle de leitura e gravação para o final do arquivo.
ios :: emEle abre o arquivo para uma leitura.
ios :: foraEle abre o arquivo para uma gravação.
ios :: trunkSe um arquivo existir, os elementos do arquivo devem ser truncados antes de sua abertura.

É possível usar dois modos ao mesmo tempo. Você os combina usando o | (OU) operador.

Exemplo 1:

 #include #include using namespace std; int main() { fstream my_file; my_file.open('my_file', ios::out); if (!my_file) { cout << 'File not created!'; } else { cout << 'File created successfully!'; my_file.close(); } return 0; } 

Resultado:

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclua o arquivo de cabeçalho iostream no programa para usar suas funções.
  2. Inclua o arquivo de cabeçalho fstream no programa para usar suas classes.
  3. Inclua o namespace std em nosso código para usar suas classes sem chamá-lo.
  4. Chame a função main (). A lógica do programa deve estar dentro de seu corpo.
  5. Crie um objeto da classe fstream e dê a ele o nome my_file.
  6. Aplique a função open () no objeto acima para criar um novo arquivo. O modo de saída nos permite escrever no arquivo.
  7. Use a instrução if para verificar se a criação do arquivo falhou.
  8. Mensagem para imprimir no console se o arquivo não foi criado.
  9. Fim do corpo da instrução if.
  10. Use uma instrução else para indicar o que fazer se o arquivo foi criado.
  11. Mensagem para imprimir no console se o arquivo foi criado.
  12. Aplique a função close () no objeto para fechar o arquivo.
  13. Fim do corpo da instrução else.
  14. O programa deve retornar um valor se for concluído com êxito.
  15. Fim do corpo da função main ().

Como Fechar Arquivos

Depois que um programa C ++ termina, ele automaticamente

  • liberta os riachos
  • libera a memória alocada
  • fecha os arquivos abertos.

No entanto, como programador, você deve aprender a fechar arquivos abertos antes que o programa seja encerrado.

Os objetos fstream, ofstream e ifstream têm a função close () para fechar arquivos. A função assume esta sintaxe:

 void close(); 

Como escrever em arquivos

Você pode gravar em um arquivo diretamente do seu programa C ++. Você usa o operador de inserção de fluxo (<<) for this. The text to be written to the file should be enclosed within double-quotes.

Vamos demonstrar isso.

Exemplo 2:

 #include #include using namespace std; int main() { fstream my_file; my_file.open('my_file.txt', ios::out); if (!my_file) { cout << 'File not created!'; } else { cout << 'File created successfully!'; my_file << 'Guru99'; my_file.close(); } return 0; } 

Resultado :

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclua o arquivo de cabeçalho iostream no programa para usar suas funções.
  2. Inclua o arquivo de cabeçalho fstream no programa para usar suas classes.
  3. Inclua o namespace std no programa para usar suas classes sem chamá-lo.
  4. Chame a função main (). A lógica do programa deve ser adicionada ao corpo desta função.
  5. Crie uma instância da classe fstream e dê a ela o nome my_file.
  6. Use a função open () para criar um novo arquivo chamado my_file.txt. O arquivo será aberto no modo de saída para gravação nele.
  7. Use uma instrução if para verificar se o arquivo não foi aberto.
  8. Texto a ser impresso no console se o arquivo não for aberto.
  9. Fim do corpo da instrução if.
  10. Use uma instrução else para indicar o que fazer se o arquivo foi criado.
  11. Texto a ser impresso no console se o arquivo foi criado.
  12. Escreva algum texto no arquivo criado.
  13. Use a função close () para fechar o arquivo.
  14. Fim do corpo da instrução else.
  15. O programa deve retornar um valor após a conclusão bem-sucedida.
  16. Fim do corpo da função main ().

Como ler arquivos

Você pode ler informações de arquivos em seu programa C ++. Isso é possível usando o operador de extração de fluxo (>>). Você usa o operador da mesma forma que o usa para ler a entrada do usuário no teclado. No entanto, em vez de usar o objeto cin, você usa o objeto ifstream / fstream.

Exemplo 3:

 #include #include using namespace std; int main() { fstream my_file; my_file.open('my_file.txt', ios::in); if (!my_file) { cout <> ch; if (my_file.eof()) break; cout << ch; } } my_file.close(); return 0; } 

Resultado:

Arquivo inexistente

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclua o arquivo de cabeçalho iostream no programa para usar suas funções.
  2. Inclua o arquivo de cabeçalho fstream no programa para usar suas classes.
  3. Inclua o namespace std no programa para usar suas classes sem chamá-lo.
  4. Chame a função main (). A lógica do programa deve ser adicionada ao corpo desta função.
  5. Crie uma instância da classe fstream e dê a ela o nome my_file.
  6. Use a função open () para criar um novo arquivo chamado my_file.txt. O arquivo será aberto no modo de leitura.
  7. Use uma instrução if para verificar se o arquivo não existe.
  8. Texto a ser impresso no console se o arquivo não for encontrado.
  9. Fim do corpo da instrução if.
  10. Use uma instrução else para indicar o que fazer se o arquivo for encontrado.
  11. Crie uma variável char chamada ch.
  12. Crie um loop while para iterar o conteúdo do arquivo.
  13. Grava / armazena o conteúdo do arquivo na variável ch.
  14. Use uma condição if e a função eof (), ou seja, fim do arquivo, para garantir que o compilador continue lendo o arquivo se o fim não for alcançado.
  15. Use uma instrução break para interromper a leitura do arquivo quando o fim for atingido.
  16. Imprima o conteúdo da variável ch no console.
  17. Fim do corpo enquanto.
  18. Fim do corpo da instrução else.
  19. Chame a função close () para fechar o arquivo.
  20. O programa deve retornar um valor após a conclusão bem-sucedida.
  21. Fim do corpo da função main ().

Resumo:

  • Com o manuseio de arquivos, a saída de um programa pode ser enviada e armazenada em um arquivo.
  • Uma série de operações podem ser aplicadas aos dados enquanto estão no arquivo.
  • Um fluxo é uma abstração que representa um dispositivo onde as operações de entrada / saída são realizadas.
  • Um fluxo pode ser representado como destino ou origem de caracteres de comprimento indefinido.
  • A biblioteca fstream fornece aos programadores C ++ métodos para manipulação de arquivos.
  • Para usar a biblioteca, você deve incluí-la em seu programa usando a diretiva do pré-processador #include.