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
TError Anadir(const char nombre[], const TPuntuacion pun) { fstream file; TError fallo = NO_ERROR; file.open(nombre, ios::app); if(file.fail()) { fallo = ERROR_OPEN; } else { file << pun.nombre; file << " "; file << pun.resultado; file << "\n"; } file.close(); return(fallo); }
Donde TPuntuacion es un registro:
Código C++:
Ver original
typedef struct { char nombre[4]; int resultado; } TPuntuacion;
Y TError es un tipo definido por mí:
Código C++:
Ver original
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.