Saltar al contenido

Cómo abrir, escribir, leer y cerrar archivos en C ++

¿Qué es el manejo de archivos en C ++?

Almacena archivos de datos de forma permanente en un dispositivo de almacenamiento. Con el manejo de archivos, la salida de un programa se puede almacenar en un archivo. Se pueden realizar varias operaciones con los datos mientras están en el archivo.

Un flujo es la abstracción de un dispositivo en el que se realizan operaciones de entrada / salida. Puede representar una corriente como destino o como fuente de carácter de duración indefinida. Esto vendrá determinado por su uso. C ++ le proporciona una biblioteca que viene con métodos para manejar archivos. Discutámoslo.

En este tutorial de C ++, aprenderá:

La biblioteca fstream

La biblioteca fstream proporciona tres clases para que los programadores de C ++ trabajen con archivos. Estas clases incluyen:

La siguiente imagen hace que sea fácil de entender:

biblioteca fstream

Para utilizar las clases anteriores de la biblioteca de secuencias, debe incluirlas en su programa como un archivo de encabezado. Por supuesto, utilizará la guía del preprocesador #include. También debe incluir el archivo de encabezado de iostream.

Cómo abrir archivos

Antes de realizar cualquier operación en un archivo, primero debe abrirlo. Si necesita escribir en el archivo, ábralo usando la secuencia o los objetos de secuencia. Si solo necesita leer desde el archivo, ábralo mientras usa el objeto ifstream.

Han definido la función abierta () por los tres objetos, a saber, fstream, ofstream e ifstream. La función asume esta sintaxis:


open (file_name, mode);
ValorSuelte
ios :: aipEl método del Apéndice. Se adjunta la salida enviada al archivo.
ios :: ithAbre el archivo para la salida y luego mueve el control de lectura y escritura al final del archivo.
ios :: enAbre el archivo para su lectura.
ios :: fueraAbre el archivo para escritura.
ios :: troncoSi existe un archivo, los elementos del archivo deben comprimirse antes de abrir.

Se pueden utilizar dos métodos simultáneamente. Los combina usando el | (O) operador.

Ejemplo 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;
}

Producción:

Aquí hay una imagen del código:

Explicación del Código:

  1. Coloque el archivo de encabezado de iostream en el programa para usar sus funciones.
  2. Incluya el archivo de encabezado de flujo en el programa para usar sus clases.
  3. Incluya el nombre de espacio estándar en nuestro código para usar sus clases sin llamarlo.
  4. Llame a la función principal (). La lógica del programa debe ir dentro de su cuerpo.
  5. Cree un objeto de la clase de flujo y asígnele el nombre my_file.
  6. Aplique la función de abrir () al objeto de arriba para crear un nuevo archivo. El método de salida nos permite escribir en el archivo.
  7. Úselo si es una declaración para verificar si la creación del archivo falló.
  8. Mensaje para imprimir en la consola si no se creó el archivo.
  9. Si el final del cuerpo de la declaración.
  10. Utilice otra declaración para decir qué hacer si se creó el archivo.
  11. Mensaje para imprimir en la consola si se creó el archivo.
  12. Aplique la función cerrar () al objeto para cerrar el archivo.
  13. El final del cuerpo de la otra declaración.
  14. El programa debe devolver valor si se completa correctamente.
  15. Fin del cuerpo funcional principal ().

Cómo cerrar archivos

Cuando se termina un programa en C ++, lo hace automáticamente

Sin embargo, como programador, debe aprender a cerrar los archivos abiertos antes de finalizar el programa.

Los objetos stream, stream e ifstream tienen la función compacta () para cerrar archivos. La función asume esta sintaxis:


void close();

Cómo escribir en archivos

Puede escribir en un archivo directamente desde su programa C ++. Utiliza un operador ascendente (<<) para esto. El texto que se escribirá en el archivo debe ir entre comillas dobles.

Ilustremos esto.

Ejemplo 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;
}

Producción:

Aquí hay una imagen del código:

Explicación del Código:

  1. Inserte el archivo de encabezado de iostream en el programa para usar sus funciones.
  2. Incluya el archivo de encabezado de flujo en el programa para usar sus clases.
  3. Incluya el nombre de espacio estándar en el programa para usar sus clases sin llamarlo.
  4. Llame a la función principal (). La lógica del programa debe agregarse dentro del cuerpo de esta función.
  5. Cree un ejemplo de la clase de flujo y asígnele el nombre my_file.
  6. Utilice la función open () para crear un nuevo archivo llamado my_file.txt. El archivo se abrirá en modo de salida para escribir.
  7. Utilice una declaración, si la hay, para comprobar que el archivo no se ha abierto.
  8. Texto para imprimir en la consola si el archivo no está abierto.
  9. Fin del cuerpo de la declaración si.
  10. Utilice otra declaración para decir qué hacer si se creó el archivo.
  11. Texto para imprimir en la consola si se creó el archivo.
  12. Escribe algo de texto en el archivo creado.
  13. Utilice la función cerrar () para cerrar el archivo.
  14. El final del cuerpo de la otra declaración.
  15. El programa debe devolver valor al completarse con éxito.
  16. El final del cuerpo de la función principal ().

Cómo leer archivos

Puede leer información de archivos en su programa C ++. Esto se puede hacer usando un operador de extracción de flujo (>>). El operador se usa de la misma manera que lo usa para leer la entrada del usuario desde el teclado. Sin embargo, en lugar de usar el objeto cin, usa el objeto ifstream / fstream.

Ejemplo 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;
}

Producción:

Ese es un archivo

Aquí hay una imagen del código:

Explicación del Código:

  1. Coloque el archivo de encabezado de iostream en el programa para usar sus funciones.
  2. Incluya el archivo de encabezado de la secuencia en el programa para usar sus clases.
  3. Incluya el nombre de espacio estándar en el programa para usar sus clases sin llamarlo.
  4. Llame a la función principal (). La lógica del programa debe agregarse dentro del cuerpo de esta función.
  5. Cree un ejemplo de la clase de flujo y asígnele el nombre my_file.
  6. Utilice la función open () para crear un nuevo archivo llamado my_file.txt. El archivo se abrirá en modo legible.
  7. Utilice una declaración, si la hay, para comprobar si el archivo existe.
  8. Texto para imprimir en la consola si no se encuentra el archivo.
  9. Fin del cuerpo de la declaración si.
  10. Utilice otra declaración para decir qué hacer si se encuentra el archivo.
  11. Cree una variable char llamada ch.
  12. Crea un ciclo de tiempo para volar el contenido del archivo.
  13. Escribe / almacena el contenido del archivo en la variable ch.
  14. Utilice una función if condition y eof (), el final del archivo, para asegurarse de que el compilador siga leyendo del archivo si no se llega al final.
  15. Utilice una declaración de pausa para dejar de leer del archivo cuando se llega al final.
  16. Imprime el contenido de la variable ch en la consola.
  17. Fin de la longitud del cuerpo.
  18. El final del cuerpo de la otra declaración.
  19. Llame a la función de cierre () para cerrar el archivo.
  20. El programa debe devolver valor al completarse con éxito.
  21. El final del cuerpo de la función principal ().

Resumen: