Manejo de archivos C++:cómo abrir, escribir, leer y cerrar archivos en C++
¿Qué es el manejo de archivos en C++?
Los archivos almacenan 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 en los datos mientras están en el archivo.
Un flujo es una abstracción de un dispositivo donde se realizan operaciones de entrada/salida. Puede representar una transmisión como un destino o una fuente de caracteres de longitud indefinida. Esto será determinado por su uso. C ++ le proporciona una biblioteca que viene con métodos para el manejo de archivos. Discutámoslo.
En este tutorial de C++, aprenderá:
- ¿Qué es el manejo de archivos en C++?
- La biblioteca fstream
- Cómo abrir archivos
- Cómo cerrar archivos
- Cómo escribir en archivos
- Cómo leer archivos
La biblioteca fstream
La biblioteca fstream proporciona a los programadores de C++ tres clases para trabajar con archivos. Estas clases incluyen:
- del flujo – Esta clase representa un flujo de salida. Se utiliza para crear archivos y escribir información en archivos.
- ifstream – Esta clase representa un flujo de entrada. Se utiliza para leer información de archivos de datos.
- fstream – Esta clase generalmente representa un flujo de archivos. Viene con capacidades ofstream/ifstream. Esto significa que es capaz de crear archivos, escribir en archivos, leer archivos de datos.
La siguiente imagen lo hace fácil de entender:
Para usar las clases anteriores de la biblioteca fstream, debe incluirlas en su programa como un archivo de encabezado. Por supuesto, utilizará la directiva de 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 objetos fstream u ofstream. Si solo necesita leer el archivo, ábralo con el objeto ifstream.
Los tres objetos, es decir, fstream, ofstream e ifstream, tienen definida la función open(). La función toma esta sintaxis:
open (file_name, mode);
- El parámetro file_name denota el nombre del archivo para abrir.
- El parámetro de modo es opcional. Puede tomar cualquiera de los siguientes valores:
Es posible utilizar dos modos al mismo tiempo. Los combinas 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; }
Salida:
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado iostream en el programa para usar sus funciones.
- Incluya el archivo de encabezado fstream en el programa para usar sus clases.
- Incluya el espacio de nombres estándar en nuestro código para usar sus clases sin llamarlo.
- Llama a la función main(). La lógica del programa debe ir dentro de su cuerpo.
- Cree un objeto de la clase fstream y asígnele el nombre my_file.
- Aplica la función open() en el objeto anterior para crear un nuevo archivo. El modo de salida nos permite escribir en el archivo.
- Utilice la declaración if para verificar si la creación del archivo falló.
- Mensaje para imprimir en la consola si no se creó el archivo.
- Fin del cuerpo de la instrucción if.
- Utilice una declaración else para indicar qué hacer si se creó el archivo.
- Mensaje para imprimir en la consola si se creó el archivo.
- Aplica la función close() en el objeto para cerrar el archivo.
- Fin del cuerpo de la sentencia else.
- El programa debe devolver valor si se completa correctamente.
- Fin del cuerpo de la función main().
Cómo cerrar archivos
Una vez que un programa C++ termina, automáticamente
- vacía los arroyos
- libera la memoria asignada
- cierra los archivos abiertos.
Sin embargo, como programador, debe aprender a cerrar los archivos abiertos antes de que finalice el programa.
Los objetos fstream, ofstream e ifstream tienen la función close() para cerrar archivos. La función toma esta sintaxis:
void close();
Cómo escribir en archivos
Puede escribir en el archivo directamente desde su programa C++. Utiliza el operador de inserción de flujo (<<) para esto. El texto que se escribirá en el archivo debe estar entre comillas dobles.
Demostremos 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; }
Salida :
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado iostream en el programa para usar sus funciones.
- Incluya el archivo de encabezado fstream en el programa para usar sus clases.
- Incluya el espacio de nombres estándar en el programa para usar sus clases sin llamarlo.
- Llama a la función main(). La lógica del programa debe agregarse dentro del cuerpo de esta función.
- Cree una instancia de la clase fstream y asígnele el nombre my_file.
- Use la función open() para crear un nuevo archivo llamado my_file.txt. El archivo se abrirá en el modo de salida para escribir en él.
- Utilice una instrucción if para comprobar si el archivo no se ha abierto.
- Texto para imprimir en la consola si el archivo no está abierto.
- Fin del cuerpo de la sentencia if.
- Utilice una declaración else para indicar qué hacer si se creó el archivo.
- Texto para imprimir en la consola si se creó el archivo.
- Escribe algo de texto en el archivo creado.
- Utilice la función close() para cerrar el archivo.
- Fin del cuerpo de la sentencia else.
- El programa debe devolver valor al completarse con éxito.
- Fin del cuerpo de la función main().
Cómo leer archivos
Puede leer información de archivos en su programa C++. Esto es posible usando el operador de extracción de flujo (>>). Utiliza el operador 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; }
Salida:
No hay tal archivo
Aquí hay una captura de pantalla del código:
Explicación del código:
- Incluya el archivo de encabezado iostream en el programa para usar sus funciones.
- Incluya el archivo de encabezado fstream en el programa para usar sus clases.
- Incluya el espacio de nombres estándar en el programa para usar sus clases sin llamarlo.
- Llama a la función main(). La lógica del programa debe agregarse dentro del cuerpo de esta función.
- Cree una instancia de la clase fstream y asígnele el nombre my_file.
- Use la función open() para crear un nuevo archivo llamado my_file.txt. El archivo se abrirá en modo in para leerlo.
- Utilice una instrucción if para verificar si el archivo no existe.
- Texto para imprimir en la consola si no se encuentra el archivo.
- Fin del cuerpo de la sentencia if.
- Utilice una declaración else para indicar qué hacer si se encuentra el archivo.
- Cree una variable char llamada ch.
- Cree un ciclo while para iterar sobre el contenido del archivo.
- Escribe/almacena el contenido del archivo en la variable ch.
- Utilice una condición if y la función eof(), es decir, el final del archivo, para asegurarse de que el compilador siga leyendo el archivo si no se llega al final.
- Utilice una declaración de interrupción para detener la lectura del archivo una vez que se alcance el final.
- Imprime el contenido de la variable ch en la consola.
- Fin del cuerpo while.
- Fin del cuerpo de la sentencia else.
- Llama a la función close() para cerrar el archivo.
- El programa debe devolver valor al completarse con éxito.
- Fin del cuerpo de la función main().
Resumen:
- Con el manejo de archivos, la salida de un programa se puede enviar y almacenar en un archivo.
- Se pueden aplicar varias operaciones a los datos mientras están en el archivo.
- Un flujo es una abstracción que representa un dispositivo donde se realizan operaciones de entrada/salida.
- Un flujo se puede representar como destino o fuente de caracteres de longitud indefinida.
- La biblioteca fstream proporciona a los programadores de C++ métodos para el manejo de archivos.
- Para usar la biblioteca, debe incluirla en su programa usando la directiva de preprocesador #include.
Lenguaje C
- Manejo de archivos C
- Cómo inicializar RAM desde un archivo usando TEXTIO
- Manejo de excepciones de C++:ejemplo Try, Catch, throw
- Cómo escribir comentarios en programación C
- Java BufferedReader:cómo leer un archivo en Java con un ejemplo
- C - Archivos de encabezado
- Archivos y flujos de C++
- Manejo de señales C++
- Python - E/S de archivos
- ¿Qué es Micrómetro? | ¿Cómo se lee un micrómetro?
- ¿Qué es un archivo Mill?