Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2010, 11:44
Bullete
 
Fecha de Ingreso: enero-2010
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 0
Abrir fichero para escribir al final

Hola, muy buenas.
Les planteo lo siguiente para ver si pueden echarme una mano.

Intento hacer una función que escribe una puntuación, dada por parámetro, en un archivo, pero necesito que lo escriba al final, es decir, que no borre las anteriores.
El código que tengo es el siguiente:

Código C++:
Ver original
  1. TError Anadir(const char nombre[], const TPuntuacion pun)
  2. {
  3.     fstream file;
  4.     TError fallo = NO_ERROR;
  5.  
  6.     file.open(nombre, ios::app);
  7.  
  8.     if(file.fail())
  9.     {
  10.         fallo = ERROR_OPEN;
  11.     }
  12.     else
  13.     {
  14.         file << pun.nombre;
  15.         file << " ";
  16.         file << pun.resultado;
  17.         file << "\n";
  18.     }
  19.  
  20.     file.close();
  21.  
  22.     return(fallo);
  23. }

Donde TPuntuacion es un registro:

Código C++:
Ver original
  1. typedef struct
  2. {
  3. char nombre[4];
  4. int resultado;
  5. } TPuntuacion;

Y TError es un tipo definido por mí:

Código C++:
Ver original
  1. typedef enum {NO_ERROR, ERROR_OPEN, ERROR_POS} TError;

La cuestion es que la funcion no abre el archivo, sino que me devuelve el error ERROR_OPEN, sin embargo si abro el fichero como ios::out funciona perfectamente escribiendo en el fichero, pero cada vez que accede borra lo anterior.

¿Cómo podría hacerlo?

Muchas gracias.