C++ Biblioteca de entrada/salida de archivos - <fstream>

En C++, <fstream>es una clase en la biblioteca estándar para operaciones de entrada/salida de archivos. Proporciona una forma conveniente de leer y escribir archivos.

fstreamSíiostreamParte de la biblioteca, admite la lectura y escritura de archivos de texto y binarios.

fstreamLa clase esiostreamuna clase en la biblioteca, que hereda deistreamyostreamclase, lo que significa que se puede utilizar tanto para entrada como para salida.

Sintaxis

fstreamLa sintaxis básica es la siguiente:

#include <fstream>

int main() {
    std::fstream file; // Crear un objeto fstream
    file.open("filename", mode); // Abrir archivo
    // Realizar operaciones de archivo
    file.close(); // Cerrar archivo
    return 0;
}

Dondefilenamees el nombre del archivo,modees el modo de apertura del archivo, los modos comunes son:

  • std::ios::in: Abrir archivo en modo entrada.
  • std::ios::out: Abrir archivo en modo salida.
  • std::ios::app: Abrir archivo en modo anexar (append).
  • std::ios::ate: Abrir archivo y posicionarse al final del archivo.
  • std::ios::trunc: Abrir archivo y truncar el archivo, es decir, vaciar el contenido del archivo.

Ejemplo

Escribir archivo de texto:

Ejemplo

#include <fstream>
#include <iostream>

int main() {
    std::fstream file;
    file.open("example.txt", std::ios::out); // Abrir archivo en modo salida

    if (!file) {
        std::cerr << "Unable to open file!" << std::endl;
        return 1; // Error al abrir el archivo
    }

    file << "Hello, World!" << std::endl; // Escribir texto
    file.close(); // Cerrar archivo

    return 0;
}

En el directorio actual, crea un archivo llamadoexample.txtcon el contenido:

Hello, World!

Leer archivo de texto

Ejemplo

#include <fstream>
#include <iostream>
#include <string>

int main() {
    std::fstream file;
    file.open("example.txt", std::ios::in); // Abrir archivo en modo entrada

    if (!file) {
        std::cerr << "Unable to open file!" << std::endl;
        return 1; // Error al abrir el archivo
    }

    std::string line;
    while (getline(file, line)) { // Leer línea por línea
        std::cout << line << std::endl;
    }

    file.close(); // Cerrar archivo

    return 0;
}

Siexample.txtel archivo contiene el siguiente contenido:

Hello, World!
This is a test file.

entonces el programa mostrará:

Hello, World!
This is a test file.

Anexar al archivo:

Ejemplo

#include <fstream>
#include <iostream>

int main() {
    std::fstream file;
    file.open("example.txt", std::ios::app); // Abrir archivo en modo anexar

    if (!file) {
        std::cerr << "Unable to open file!" << std::endl;
        return 1; // Error al abrir el archivo
    }

    file << "Appending this line to the file." << std::endl; // Anexar texto
    file.close(); // Cerrar archivo

    return 0;
}

example.txtEl archivo originalmente contenía lo siguiente:

Hello, World!
This is a test file.

Después de ejecutar el programa anterior, el contenido del archivo cambiará a:

Hello, World!
This is a test file.
Appending this line to the file.
Otras extensiones