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 originalTError 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 originaltypedef struct
{
char nombre[4];
int resultado;
} TPuntuacion;
Y TError es un tipo definido por mí:
Código C++:
Ver originaltypedef 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.