Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Manejo de archivos en C++: Dominando apertura, lectura, escritura y cierre

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

El manejo de archivos permite persistir datos del programa en dispositivos de almacenamiento. Al dirigir la salida del programa a un archivo, puede realizar manipulación, análisis o archivado posterior de esos datos.

Un flujo (stream) es una abstracción que representa una fuente o destino continuo de caracteres. C++ proporciona una robusta biblioteca fstream que ofrece clases y funciones para trabajar fluidamente con archivos.

En este tutorial aprenderá:

La biblioteca fstream

La biblioteca fstream proporciona tres clases principales:

Referencia visual rápida:

Manejo de archivos en C++: Dominando apertura, lectura, escritura y cierre

Para usar estas clases, incluya la cabecera fstream y, si desea salida a consola, iostream también.

Cómo abrir archivos

Antes de cualquier operación con archivos, este debe abrirse. Use ofstream para acceso solo escritura, ifstream para solo lectura, y fstream para ambos. Cada clase proporciona un miembro open():

open(nombre_archivo, modo);
ValorDescripción
ios::appModo añadir – las escrituras se agregan al final del archivo.
ios::ateAbrir y posicionar inmediatamente al final.
ios::inAbrir para lectura.
ios::outAbrir para escritura.
ios::truncTruncar archivo existente a longitud cero.

Múltiples banderas pueden combinarse con el operador OR bit a bit (|).

Ejemplo 1: Crear un archivo

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream mi_archivo;
    mi_archivo.open("mi_archivo", ios::out);
    if (!mi_archivo) {
        cout << "¡Archivo no creado!";
    } else {
        cout << "¡Archivo creado exitosamente!";
        mi_archivo.close();
    }
    return 0;
}

Salida:

Manejo de archivos en C++: Dominando apertura, lectura, escritura y cierre

Captura del programa en ejecución:

Manejo de archivos en C++: Dominando apertura, lectura, escritura y cierre

Recorrido del código:

  1. Incluya iostream para E/S de consola.
  2. Incluya fstream para flujos de archivo.
  3. Use el espacio de nombres std por brevedad.
  4. Instancie un objeto fstream llamado mi_archivo.
  5. Abra el archivo en modo escritura (ios::out).
  6. Verifique apertura exitosa; si no, reporte fallo.
  7. En caso de éxito, imprima confirmación y cierre el archivo.
  8. Retorne 0 para indicar terminación normal.

Cómo cerrar archivos

Aunque C++ vacía y cierra flujos automáticamente al salir del programa, cerrar explícitamente un archivo tras su última operación se considera buena práctica.

El miembro close() está disponible en fstream, ofstream e ifstream:

void close();

Cómo escribir en archivos

Las operaciones de escritura usan el operador de inserción de flujo (<<). El texto a almacenar debe ir entre comillas o transmitirse directamente.

Ejemplo 2: Escribir texto

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream mi_archivo;
    mi_archivo.open("mi_archivo.txt", ios::out);
    if (!mi_archivo) {
        cout << "¡Archivo no creado!";
    } else {
        cout << "¡Archivo creado exitosamente!";
        mi_archivo << "Guru99";
        mi_archivo.close();
    }
    return 0;
}

Salida:

Manejo de archivos en C++: Dominando apertura, lectura, escritura y cierre

Captura del código:

Manejo de archivos en C++: Dominando apertura, lectura, escritura y cierre

Recorrido del código:

  1. Incluya cabeceras necesarias.
  2. Cree un objeto fstream.
  3. Abra el archivo objetivo en modo escritura.
  4. Valide el flujo de archivo.
  5. Inserte la cadena "Guru99" en el archivo.
  6. Cierre el flujo.
  7. Retorne 0.

Cómo leer desde archivos

La lectura usa el operador de extracción de flujo (>>) igual que cin. Los datos se transmiten a variables de tipos apropiados.

Ejemplo 3: Lectura de caracteres

#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream mi_archivo;
    mi_archivo.open("mi_archivo.txt", ios::in);
    if (!mi_archivo) {
        cout << "No existe el archivo";
    } else {
        char ch;
        while (1) {
            mi_archivo >> ch;
            if (mi_archivo.eof()) break;
            cout << ch;
        }
    }
    mi_archivo.close();
    return 0;
}

Salida:

Manejo de archivos en C++: Dominando apertura, lectura, escritura y cierre

Captura del código en ejecución:

Manejo de archivos en C++: Dominando apertura, lectura, escritura y cierre

Recorrido del código:

  1. Incluya iostream y fstream.
  2. Abra el archivo para lectura (ios::in).
  3. Verifique existencia; si falta, notifique al usuario.
  4. Lea caracteres uno a uno hasta alcanzar EOF.
  5. Imprima cada carácter en consola.
  6. Cierre el flujo.
  7. Retorne 0.

Resumen

Lenguaje C

  1. Micrómetro Explicado: Cómo Leer y Usar Esta Herramienta de Medición de Precisión
  2. ¿Qué es una Lima de Banco? Guía Completa de la Herramienta Esencial para Madera y Metal
  3. Manejo de archivos en C: Dominando E/S con fopen, fprintf, fread y fseek
  4. Manejo de excepciones en C++: Guía práctica con try, catch, throw
  5. Dominando los comentarios en C: Escribir notas claras y efectivas
  6. Entendiendo los Archivos de Cabecera en C: Tipos, Uso y Buenas Prácticas
  7. Dominando Entrada/Salida de Archivos en C++: Lectura y Escritura con fstream
  8. Dominar el manejo de señales en C++: Gestión segura de interrupciones y terminación limpia del programa
  9. Inicialización de RAM de bloques FPGA desde archivos de texto usando la biblioteca TEXTIO de VHDL
  10. Entrada/Salida de Archivos en Python: Domina las Operaciones I/O
  11. Lectura de archivos en Java con BufferedReader – Guía práctica con ejemplos