Introducción
En este laboratorio, aprenderemos a leer números de un archivo y luego sumarlos línea por línea, escribiendo los resultados en otro archivo. Siguiendo los pasos de este tutorial, aprenderá a escribir un programa en C++ que:
En este laboratorio, aprenderemos a leer números de un archivo y luego sumarlos línea por línea, escribiendo los resultados en otro archivo. Siguiendo los pasos de este tutorial, aprenderá a escribir un programa en C++ que:
Crea un nuevo archivo llamado file_sum.cpp en el directorio ~/project.
touch ~/project/file_sum.cpp
Para trabajar con archivos en C++, necesitamos incluir las bibliotecas <iostream> y <fstream> en nuestro programa. Agrega el siguiente código a tu archivo file_sum.cpp:
#include <iostream>
#include <fstream>
using namespace std;
Vamos a pedir al usuario el nombre del archivo. Agrega el siguiente código a tu archivo file_sum.cpp:
int main()
{
char fileName[50];
cout << "Enter file name: ";
cin.getline(fileName, 50);
ifstream inFile(fileName);
ofstream outFile("sum.txt");
string line;
}
Aquí declaramos un arreglo de caracteres fileName para almacenar el nombre del archivo que el usuario ingresará. Luego le pedimos al usuario que ingrese el nombre del archivo y lo almacenamos en el arreglo fileName. Finalmente, creamos un objeto ifstream para abrir el archivo de entrada inFile, y un objeto ofstream para crear el archivo de salida outFile. También declaramos la cadena line que se utilizará para almacenar cada línea del archivo de entrada.
Ahora escribiremos el código para leer el archivo y sumar los números en cada línea. Para cada línea del archivo, leeremos los números utilizando un objeto stringstream, los sumaremos y escribiremos la suma en el archivo de salida. Agrega el siguiente código a tu archivo file_sum.cpp:
while (getline(inFile, line))
{
int sum = 0;
stringstream ss(line);
int num;
while (ss >> num)
{
sum += num;
}
outFile << sum << endl;
}
Aquí, usamos un bucle while para leer cada línea del archivo de entrada, almacenando la línea en la cadena line. Luego inicializamos la variable sum con 0, creamos un objeto stringstream llamado ss que contiene el contenido de cada línea. Luego extraemos cada número del stringstream a num e incrementamos la variable sum con cada número. Después de que todos los números de la línea hayan sido procesados, escribimos sum en el archivo de salida outFile.
Por último, necesitamos cerrar los archivos de entrada y salida e informar al usuario de que el archivo ha sido procesado. Agrega el siguiente código a tu archivo file_sum.cpp:
inFile.close();
outFile.close();
cout << "File processed successfully." << endl;
return 0;
Compila el código file_sum.cpp usando el siguiente comando:
g++ file_sum.cpp -o file_sum
Ejecuta el código con el siguiente comando en la terminal:
./file_sum
Se te pedirá que ingreses el nombre del archivo que quieres procesar. Ingresa el nombre y pulsa Enter. El programa leerá el archivo, sumará los números línea por línea y escribirá los resultados en un nuevo archivo llamado sum.txt.
Aquí está el código completo del archivo file_sum.cpp:
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
char fileName[50];
cout << "Enter file name: ";
cin.getline(fileName, 50);
ifstream inFile(fileName);
if (!inFile)
{
cerr << "Unable to open file" << endl;
return -1;
}
ofstream outFile("sum.txt");
string line;
while (getline(inFile, line))
{
int sum = 0;
stringstream ss(line);
int num;
while (ss >> num)
{
sum += num;
}
outFile << sum << endl;
}
inFile.close();
outFile.close();
cout << "File processed successfully." << endl;
return 0;
}
En este laboratorio, aprendimos cómo leer un archivo, sumar sus números línea por línea y escribir los resultados en otro archivo utilizando las bibliotecas estándar de C++ <iostream> y <fstream> y la clase stringstream. Ahora deberías ser capaz de manejar archivos y utilizar muchas de las operaciones básicas de archivos en tus programas de C++.