[C con Clase] Append a archivo de texto

Joaquin Fernandez joaquinfq en gmail.com
Jue Mar 29 09:23:25 CEST 2007


Tomas Zulberti escribió:
> Hola. Tengo el siguiente while:
> void guardarResultado(int* arregloAGuardar, int longitud) {
> 	ofstream archivoSalida("Tp1Ej1.out");
> 	int i = 0;
> 	archivoSalida << longitud << endl;
> 	while (i < longitud )
> 	{
> 		archivoSalida << arregloAGuardar[i] << endl;
> 		i++;
> 	}
> 	
> 	archivoSalida.close();
> }
> 
> La cosa es que este while es llamado varias veces en el programa, pero
> solo me graba la ultima vez que se llamo... Queria saber si habia
> alguna forma de hacer un append() o algo similar...

Tú rutina se ejecuta correctamente las veces que la llamas, no solamente la última. El problema lo
tienes en que estás abriendo el stream ArchivoSalida como salida, lo que ocasiona que se borre el
archivo existente y se cree nuevamente, por eso te parece que se ejecuta la última vez. Para poder
añadir líneas de texto a un archivo existente debes abrir el archivo en modo "append". Te aconsejo
que leas en el curso de C Con Clase el apartado de manipulación de archivos para que veas las
opciones que puedes pasar al constructor del ofstream para este propósito y otra información
relacionada con los archivos. También puedes buscar en Google más información.

Saludos

Joaquín




Más información sobre la lista de distribución Cconclase