Leer y escribir un archivo línea por línea en C++

C++Beginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a leer y escribir un archivo línea por línea utilizando el lenguaje de programación C++. Creará un archivo, escribirá en él y luego leerá su contenido una línea a la vez.

Crear y abrir un archivo

Cree un archivo C++ llamado file_io.cpp en el directorio ~/project. En este paso, creará y abrirá un archivo llamado example.txt.

#include <fstream>

int main() {
    // Creating and opening a file
    std::ofstream ofs;
    ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
    ofs.close();
    return 0;
}

Explicación:

  • ofstream es una clase para escribir en archivos.
  • ofs es un objeto de la clase ofstream.
  • El método open() se utiliza para crear y abrir un archivo.
  • En el método open(), el primer argumento es el nombre del archivo a crear y el segundo argumento especifica el modo en el que se debe abrir el archivo. Aquí, out especifica que el archivo se abre para escritura y trunc especifica que el archivo debe ser truncado si ya existe.

Escribir en un archivo

En este paso, escribirá en el archivo example.txt.

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

int main() {
    std::ofstream ofs;
    ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
    if (ofs.is_open()) {
        std::cout << "Ingrese el texto que desea escribir en el archivo (Presione Enter en una línea en blanco para salir):" << std::endl;
        std::string line;
        do {
            std::getline(std::cin, line);
            if (line.length()) {
                ofs << line << std::endl;
            }
        } while (line.length());
        ofs.close();
    } else {
        std::cerr << "Error al abrir el archivo" << std::endl;
    }
    return 0;
}

Explicación:

  • std::cout se utiliza para mostrar un mensaje en la consola pidiendo al usuario que ingrese el texto que desea escribir en el archivo.
  • std::getline() se utiliza para leer la entrada del usuario línea por línea y almacenarla en la variable line.
  • if (line.length()) se utiliza para comprobar si el usuario ha ingresado algún texto o no. Si el usuario no ha ingresado ningún texto, entonces el bucle se detendrá.
  • ofs << line << std::endl; se utiliza para escribir la entrada del usuario en el archivo seguido de un carácter de nueva línea.
  • std::cerr se utiliza para mostrar un mensaje de error en la consola si el archivo no se puede abrir.

Para ejecutar este programa, vaya al directorio ~/project y ejecute el siguiente comando:

g++ file_io.cpp -o file_io && ./file_io

Este programa le pedirá al usuario que ingrese el texto que desea escribir en el archivo y luego escribirá la entrada del usuario en el archivo.

Leer de un archivo

En este paso, leerá el contenido del archivo example.txt.

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

int main() {
    std::ifstream ifs;
    ifs.open("example.txt");
    if (ifs.is_open()) {
        std::cout << "Contenido del archivo:" << std::endl;
        std::string line;
        while (std::getline(ifs, line)) {
            std::cout << line << std::endl;
        }
        ifs.close();
    } else {
        std::cerr << "Error al abrir el archivo" << std::endl;
    }
    return 0;
}

Explicación:

  • std::ifstream es una clase para leer de archivos.
  • ifs es un objeto de la clase ifstream.
  • El método open() se utiliza para abrir un archivo existente.
  • En el método open(), el argumento es el nombre del archivo a abrir.
  • std::cout se utiliza para mostrar un mensaje en la consola para indicar que se están mostrando los contenidos del archivo.
  • std::getline() se utiliza para leer el contenido del archivo línea por línea y almacenarlo en la variable line.
  • std::cout << line << std::endl; se utiliza para mostrar los contenidos del archivo línea por línea en la consola.

Para ejecutar este programa, vaya al directorio ~/project y ejecute el siguiente comando:

g++ file_io.cpp -o file_io && ./file_io

Este programa mostrará el contenido del archivo example.txt en la consola.

Resumen

En este laboratorio, aprendió cómo crear, escribir en y leer de un archivo utilizando el lenguaje de programación C++. Aprendió cómo utilizar las clases ofstream e ifstream para escribir en y leer de archivos, respectivamente. También aprendió cómo utilizar el método open() para crear y abrir un archivo, y el método getline() para leer el contenido de un archivo línea por línea.