Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2015, 04:37
Macas
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 11 años, 6 meses
Puntos: 0
Escribir archivo .txt sin sobreescribir los datos anteriores

Buenas,

Estoy haciendo un pequeño log para un programilla en c++, lo que quiero hacer y hago es leer y escribir un archivo de texto. En la misma ejecucción todo sale OK, escribo linea a linea y una debajo de la otra.
El problema, es que en la siguiente ejecucción se me sobrescribe todo lo anterior.
Alguna ayudita?

Este es mi codigo:

Código C++:
Ver original
  1. int main( int argc, char** argv )
  2. {
  3.    
  4.    
  5.     char cadena[128];
  6.     time_t t;
  7.     struct tm *tm;
  8.     char fechayhora[100];
  9.     ofstream fs;
  10.     t=time(NULL);
  11.     tm=localtime(&t);
  12.     strftime(fechayhora, 100, "%d/%m/%Y %H:%M:%S ", tm);
  13.     string nuevoNombreFoto;
  14.     string nuevo_nombre;
  15.      
  16.     // Crea un fichero de salida
  17.     fs.open("log_C++.txt",std::ios::ate);
  18.    
  19.    
  20.     // Enviamos una cadena al fichero de salida:
  21.     fs <<fechayhora << "- Iniciando procesado de imagen" << endl;
  22.    
  23.    
  24.     if(argv[1] != NULL)
  25.     {
  26.         fs << "El primer argumento en la ejecucion es:" << argv[1] << endl;
  27.         nuevoNombreFoto = string(argv[1]) ;
  28.         string original = nuevoNombreFoto;
  29.         string parte = ".";
  30.         nuevo_nombre = original.substr( 0, original.find( parte )) +"_tratada.jpg"  ;
  31.         fs << "El nuevo nombre esssss: "<<nuevo_nombre << endl;
  32.        
  33.  
  34.     }
  35.     else
  36.     {
  37.         cout << "El primer argumento en la ejecucion es NULL o no se ha introducido una imagen\n\n";
  38.         fs << "El primer argumento en la ejecucion es NULL o no se ha introducido una imagen\n\n";
  39.         system("PAUSE");
  40.     }
  41.  
  42.     t=time(NULL);
  43.     tm=localtime(&t);
  44.     strftime(fechayhora, 100, "%d-%m-%Y %H:%M:%S ", tm);
  45.     cout << nuevo_nombre;
  46.    // Enviamos una cadena al fichero de salida:
  47.    fs <<fechayhora << "- Procesado de imagen finalizado" << endl;
  48.    // Cerrar el fichero,
  49.    // para luego poder abrirlo para lectura:
  50.    fs.close();
  51.    
  52.  
  53.      
  54.  
  55. }