Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Manipulação de arquivos C++:como abrir, escrever, ler, fechar arquivos em C++

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


Os arquivos armazenam dados permanentemente em um dispositivo de armazenamento. Com a manipulação de arquivos, a saída de um programa pode ser armazenada em um arquivo. Várias operações podem ser executadas 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 destino ou origem de caracteres de comprimento indefinido. Isso será determinado pelo seu uso. C++ fornece uma biblioteca que vem com métodos para manipulação de arquivos. Vamos discuti-lo.

Neste tutorial de c++, você aprenderá:

A biblioteca fstream


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

A imagem a seguir facilita o entendimento:





Para usar as classes acima da biblioteca fstream, você deve incluí-la em seu programa como um arquivo de cabeçalho. Claro, você usará a diretiva de 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 objetos fstream ou ofstream. Se você precisar apenas 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 usa esta sintaxe:
open (file_name, mode);
  • O parâmetro file_name denota o nome do arquivo a ser aberto.
  • O parâmetro mode é opcional. Pode assumir qualquer um dos seguintes valores:
Valor Descrição ios::appThe Append mode. A saída enviada ao arquivo é anexada a ele.ios::ateIt abre o arquivo para a saída e move o controle de leitura e gravação para o final do arquivo.ios::inIt abre o arquivo para um read.ios::outAbre o arquivo para um write.ios::truncSe 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 | (OR) operador.

Exemplo 1:

#include <iostream>
#include <fstream>
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;
}

Saída:



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 out nos permite escrever no arquivo.
  7. Use a instrução if para verificar se a criação do arquivo falhou.
  8. Mensagem a ser impressa no console caso o arquivo não tenha sido 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 a ser impressa 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 o valor se for concluído com êxito.
  15. Fim do corpo da função main().

Como fechar arquivos


Uma vez que um programa C++ termina, ele automaticamente
  • libera os fluxos
  • libera a memória alocada
  • fecha os arquivos abertos.

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

Os objetos fstream, ofstream e ifstream possuem a função close() para fechar arquivos. A função usa esta sintaxe:
void close();

Como gravar em arquivos


Você pode gravar no arquivo diretamente do seu programa C++. Você usa o operador de inserção de fluxo (<<) para isso. O texto a ser escrito no arquivo deve ser colocado entre aspas duplas.

Vamos demonstrar isso.

Exemplo 2:

#include <iostream>
#include <fstream>
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;
}

Saída :



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 escrita 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 o 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 <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file.txt", ios::in);
	if (!my_file) {
		cout << "No such file";
	}
	else {
		char ch;

		while (1) {
			my_file >> ch;
			if (my_file.eof())
				break;

			cout << ch;
		}

	}
	my_file.close();
	return 0;
}

Saída:



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 in para 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 sobre o conteúdo do arquivo.
  13. Gravar/armazenar o conteúdo do arquivo na variável ch.
  14. Use uma condição if e uma função eof() que é o 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 final for atingido.
  16. Imprima o conteúdo da variável ch no console.
  17. Fim do corpo while.
  18. Fim do corpo da instrução else.
  19. Chame a função close() para fechar o arquivo.
  20. O programa deve retornar o valor após a conclusão bem-sucedida.
  21. Fim do corpo da função main().

Resumo:

  • Com a manipulação de arquivos, a saída de um programa pode ser enviada e armazenada em um arquivo.
  • Várias 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 executadas.
  • 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 de pré-processador #include.

Linguagem C

  1. C Manipulação de Arquivos
  2. Como inicializar a RAM do arquivo usando TEXTIO
  3. Manipulação de Exceções C++:Try, Catch, Throw Exemplo
  4. Como escrever comentários em programação C
  5. Java BufferedReader:Como Ler Arquivo em Java com Exemplo
  6. C - Arquivos de cabeçalho
  7. Arquivos e fluxos C++
  8. Manipulação de sinal C++
  9. Python - E/S de arquivos
  10. O que é Micrômetro? | Como você lê um micrômetro