[ Foro de C ]

PROGRAMA EN C++

26-Apr-2020 17:59
Invitado (JUAN GOMEZ)
0 Respuestas

Hola, tengo que crear un programa que haga los siguiente:
1º Leer un fichero que esta formado por dos columnas (desconocemos el numero de filas), asegurarse de que los datos del fichero son numeros reales y de que en la columna 1 y en la 2 hay la misma cantidad de numeros.
2º Sumar los elementos de las filas, por ejemplo:
2 3 --> 2+3=5
1 2 --> 1+2=3
4 1 --> 4 +1 = 5
2 3 -->2 + 3 =5
3º Mostrar por consola el numero mas grande que se obtiene al sumar las columnas y los numeros que se han sumado para alcanzar ese numero, pero si en el fichero hay una fila con los mismos numeros solo debe salir una vez por consola.
Segun el ejemplo anterior en la consola deberia aparecer:
"El número mayor que se obtiene es 5 que se obtiene al sumar: 2 y 3, 4 y 1.
Yo he pensado ir añadiendo a un vector los resultados de las sumas y luego imprimir por consola el mayor, pero no se como puedo hacer esto.
Lo que tengo hecho hasta el momento es lo siguiente:
#include <iostream>
#include <fstream>
#include <vector>
#include <sstream>
#include <cmath>

const char sumasFich[] = "puntos.txt";

int main()
{
std::ifstream in(sumasFich, std::ios::in);
//SI EL FICHERO NO SE PUEDE ABRIR DA ERROR Y FINALIZA
if(!in){
std::cout << "ERROR al abrir el fichero. " << sumasFich;
return 1;
}

std::vector<double> columna1,columna2;
while(!in.eof()){
double col1, col2;
in >> col1;
if(in.eof())break;
if(in.fail()){
std::cout << "Dato no valido en el fichero " << sumasFich << std::endl;
return 1;
}

inFich >> col2;

if(in.eof()){
std::cout << "FICHERO " << sumasFich << " INCOMPLETO. " ;
return 1;
}
if(in.fail()){
std::cout << "Dato no valido en el fichero " << sumasFich << std::endl;
return 1;
}
columna1.push_back(co1);
columna2.push_back(col2);
}
in.close();
if(columna1.size() == 0){
std::cout << "El fichero " << sumasFich << " esta vacio. ";
return 1;
}
      double Sumas;
for(unsigned int i = 0; i < columna1.size(); i++){
Sumas = columna1[i]+columna2[i]
std::cout << "El resultado mayor es " << Sumas << " se obtiene al sumar "<< columna1[i] << " y " <<
               columna2[i] << std::endl;
}
return 0;
}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)