"archivos" ayuda explicación de código

Iniciado por matver, 6 Abril 2018, 04:45 AM

0 Miembros y 1 Visitante están viendo este tema.

matver

Estoy tratando de comprender este código que estoy estudiando, que me corrijan por favor si me equivoco. Asi tal cual esta el programa me permite guardar en el archivo que se crea y se llama "loan.aut" el resultado de la operación suma de las variables  numero1 mas el numero2. Estoy intentando que ademas de guardarse en el archivo el resultado de la suma pueda pedir el ingreso por teclado los valores de numero1 y numero2 y que también se muestre en pantalla el resultado de la suma. Puede alguien orientarme para lograrlo.
Código (cpp) [Seleccionar]

#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;
#include <fstream>
#include <cmath>
#include <iomanip>

int main (){
int numero1=5;
int numero2=5;
int suma;

ofstream outData;
ifstream inData;
inData.open("loan.in");
outData.open("loan.out");
inData >> numero1 >> numero2;
suma=numero1+numero2;
outData << fixed << setprecision(2) << "el resultado de la suma es: "
<<suma;
inData.close();
outData.close();
return 0;

}




No puedo eliminar mi post pero conseguí hacer lo que planeaba con el este código. Agradezco sugerencias y comentarios .

Código (cpp) [Seleccionar]

#include <fstream>
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
#include <fstream>
#include <cmath>
#include <iomanip>

int main (){
int numero1;
int numero2;
int suma;

ofstream outData;
ifstream inData;
inData.open("loan.in");
outData.open("loan.out");
cout<<"ingrese los valores a sumar"<<endl;
cin>>numero1;
cin>>numero2;
inData >> numero1 >> numero2;
suma=numero1+numero2;
cout<<"el resultado de la suma es: "<<suma<<endl;
outData << fixed << setprecision(2) << "el resultado de la suma es: "
<<suma;
inData.close();
outData.close();
return 0;

}



Ahora mi problema es como hacer para que unas sucesivas ejecuciones se guarden en el archivo sin sobre escribirlo cada vez que se ejecuta el programa.

matver

Chicos este pedazo de codigo en teoria tendria que crear un archivo con el nombre que se ingresa por teclado, compila bien pero no esta funcionando.
Código (cpp) [Seleccionar]

#include <fstream>
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
#include <fstream>
#include <cmath>
#include <iomanip>

int main (){


ifstream inFile;
string fileName;
cout << "Introduzca el nombre del archivo de entrada: ";
cin >> fileName;
inFile.open(fileName.c_str());
}




matver

Quiero que el nombre del archivo se ingrese por teclado, todo lo que estoy encontrando es con nombre definido.

Kenji-chan

el objeto ifstream viene con 4 constructores
Código (cpp) [Seleccionar]

ifstream(); //pordefecto
ifstream (const char* filename, ios_base::openmode mode = ios_base::in); //inicializacion
ifstream (const string& filename, ios_base::openmode mode = ios_base::in); //inicializacion
ifstream (const ifstream&) = delete; //copia
ifstream (ifstream&& x); //movimiento


el que tratas de utilizar es el
ifstream (const char* filename, ios_base::openmode mode = ios_base::in);
que como habrás notado el argumento mode es ios_base::in que esta puesto pordefecto al no especificarlo, con esto lo que hacemos es intentar abrir el fichero const char* filename que es el primer argumento, pero ese argumento no te crea el fichero especificado en el primer argumento solo lo intenta abrir sin mas, si lo que quieres es que también te cree el fichero has esto

Código (cpp) [Seleccionar]

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char *argv[]) {
ifstream f;
string fn;
cout << "Introduzca el nombre del archivo de entrada: ";
cin >> fn;
f.open(fn, std::ofstream::out | std::ofstream::app);
        /* codigo para excribir dentro del fichero */
f.close();
return 0;
}