Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DeMoNcRaZy en 16 Mayo 2015, 11:23 am



Título: [C++] Sobre-escribir archivo [SOLUCIONADO]
Publicado por: DeMoNcRaZy en 16 Mayo 2015, 11:23 am
Buenas,

Estoy intentando sobre-escribir los datos de un archivo (para modificarlo) pero me salta error por que no está definido el archivo pero lo tengo encontrado, acá el código:

Me dice que el archivo no está declarado.
(http://i.imgur.com/RXQDRTr.png)

Código
  1. ifstream fe(datname);
  2. if(fe.good()){
  3. // Se muestra el contenido
  4. while(!fe.eof())
  5.        {
  6.            char c = fe.get();
  7.            str += c;
  8.  
  9.    if(c == '\n') {
  10.                cout << str;
  11.                str = "";
  12.            }
  13.        }
  14.  
  15.        cout << "\n?Que desea hacer?" << endl;
  16.        cin >> hacerOpcion;
  17.  
  18.        if(hacerOpcion == "modificar"){
  19.         cout << "Modificando archivo..." << endl;
  20.  
  21.         ifstream fe(datname);
  22.  
  23.         if(fe.good()){
  24.         getline(cin, empresaDos);
  25.         cout << "Empresa: ";
  26.            getline(cin, empresaDos);
  27.  
  28.            cout << "Edad: ";
  29.            cin >> edadDos;
  30.  
  31.            empresaDos = "Empresa: " + empresaDos;
  32.            edadDos = "Edad: " + edadDos;
  33.  
  34.            cin.ignore(2, '\n');
  35.  
  36.            file.write(empresaDos.c_str(), empresaDos.size());
  37.            file << endl;
  38.            file << endl;
  39.            file.write(edadDos.c_str(), edadDos.size());
  40.  
  41.            file.close();
  42.         }
  43.        }
  44.        else{
  45.         cout << "La opcion seleccionada no existe." << endl;
  46.        }
  47. }
  48. else{
  49. cout << "El archivo no ha sido encontrado." << endl;
  50. }

Intento sustituir el texto predefinido por el nuevo, pero no encuentra el archivo aunque lo tenga definido ifstream fe(datname);

Si me pueden echar una ayudita lo agradecería.

Saludos.


Título: Re: [C++] Sobre-escribir archivo
Publicado por: Stakewinner00 en 16 Mayo 2015, 11:55 am
Pon la línea de código donde se define "file". File la usas en las líneas 36 37 38 39 y 41 pero en el code que pusiste no vi que lo declararas.

Quisiste decir "fe"?

PD: Ir preguntando para cada error no es una buena manera de aprender... Si encuentras un error mira tu code y fíjate un poco, no seas vago.


Título: Re: [C++] Sobre-escribir archivo
Publicado por: DeMoNcRaZy en 16 Mayo 2015, 19:19 pm
Pon la línea de código donde se define "file". File la usas en las líneas 36 37 38 39 y 41 pero en el code que pusiste no vi que lo declararas.

Quisiste decir "fe"?

PD: Ir preguntando para cada error no es una buena manera de aprender... Si encuentras un error mira tu code y fíjate un poco, no seas vago.

Gracias, y es como bien dices es mejor probar varias cosas.

Al final era un error muy tonto.

En vez de file era fe.

Código
  1. fe.write(empresaDos.c_str(), empresaDos.size());
  2.        fe << endl;
  3.        fe << endl;
  4.        fe << edadDos << endl;

Y usar ofstream.

Gracias.

Saludos.