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:
ofstreames una clase para escribir en archivos.ofses un objeto de la claseofstream.- 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í,outespecifica que el archivo se abre para escritura ytruncespecifica 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::coutse 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 variableline.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::cerrse 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::ifstreames una clase para leer de archivos.ifses un objeto de la claseifstream.- 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::coutse 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 variableline.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.



