#include <iostream> // Para la entrada y salida de datos (cout)
#include <fstream> // Para el manejo de archivos (ifstream)
#include <string> // Para usar el tipo de dato string
int main() {
// 1. Declarar un objeto de tipo std::ifstream para la lectura
std::ifstream archivo;
std::string nombreArchivo = "documento.txt"; // Nombre del archivo a leer
// 2. Abrir el archivo con el modo de lectura (ios::in)
archivo.open(nombreArchivo);
// 3. Comprobar si el archivo se abrió correctamente
if (archivo.is_open()) {
std::string linea; // Variable para almacenar cada línea leída
// 4. Leer el archivo línea por línea
while (getline(archivo, linea)) {
// 5. Mostrar la línea leída en la consola
std::cout << linea << std::endl;
}
// 6. Cerrar el archivo
archivo.close();
} else {
// 7. Mensaje de error si no se pudo abrir el archivo
std::cout << "Error al abrir el archivo: " << nombreArchivo << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAvLyBQYXJhIGxhIGVudHJhZGEgeSBzYWxpZGEgZGUgZGF0b3MgKGNvdXQpCiNpbmNsdWRlIDxmc3RyZWFtPiAgLy8gUGFyYSBlbCBtYW5lam8gZGUgYXJjaGl2b3MgKGlmc3RyZWFtKQojaW5jbHVkZSA8c3RyaW5nPiAgIC8vIFBhcmEgdXNhciBlbCB0aXBvIGRlIGRhdG8gc3RyaW5nCgppbnQgbWFpbigpIHsKICAgIC8vIDEuIERlY2xhcmFyIHVuIG9iamV0byBkZSB0aXBvIHN0ZDo6aWZzdHJlYW0gcGFyYSBsYSBsZWN0dXJhCiAgICBzdGQ6Omlmc3RyZWFtIGFyY2hpdm87CiAgICBzdGQ6OnN0cmluZyBub21icmVBcmNoaXZvID0gImRvY3VtZW50by50eHQiOyAvLyBOb21icmUgZGVsIGFyY2hpdm8gYSBsZWVyCgogICAgLy8gMi4gQWJyaXIgZWwgYXJjaGl2byBjb24gZWwgbW9kbyBkZSBsZWN0dXJhIChpb3M6OmluKQogICAgYXJjaGl2by5vcGVuKG5vbWJyZUFyY2hpdm8pOwoKICAgIC8vIDMuIENvbXByb2JhciBzaSBlbCBhcmNoaXZvIHNlIGFicmnDsyBjb3JyZWN0YW1lbnRlCiAgICBpZiAoYXJjaGl2by5pc19vcGVuKCkpIHsKICAgICAgICBzdGQ6OnN0cmluZyBsaW5lYTsgLy8gVmFyaWFibGUgcGFyYSBhbG1hY2VuYXIgY2FkYSBsw61uZWEgbGXDrWRhCgogICAgICAgIC8vIDQuIExlZXIgZWwgYXJjaGl2byBsw61uZWEgcG9yIGzDrW5lYQogICAgICAgIHdoaWxlIChnZXRsaW5lKGFyY2hpdm8sIGxpbmVhKSkgewogICAgICAgICAgICAvLyA1LiBNb3N0cmFyIGxhIGzDrW5lYSBsZcOtZGEgZW4gbGEgY29uc29sYQogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgbGluZWEgPDwgc3RkOjplbmRsOwogICAgICAgIH0KCiAgICAgICAgLy8gNi4gQ2VycmFyIGVsIGFyY2hpdm8KICAgICAgICBhcmNoaXZvLmNsb3NlKCk7CiAgICB9IGVsc2UgewogICAgICAgIC8vIDcuIE1lbnNhamUgZGUgZXJyb3Igc2kgbm8gc2UgcHVkbyBhYnJpciBlbCBhcmNoaXZvCiAgICAgICAgc3RkOjpjb3V0IDw8ICJFcnJvciBhbCBhYnJpciBlbCBhcmNoaXZvOiAiIDw8IG5vbWJyZUFyY2hpdm8gPDwgc3RkOjplbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9