Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Abrir fichero para escribir al final

Estas en el tema de Abrir fichero para escribir al final en el foro de C/C++ en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 09/03/2010, 11:44
 
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.
  #2 (permalink)  
Antiguo 10/03/2010, 17:35
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Respuesta: Abrir fichero para escribir al final

¿Probaste con ambos flags?

file.open(nombre, fstream::out | fstream::app);
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 11/03/2010, 13:42
 
Fecha de Ingreso: enero-2010
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Abrir fichero para escribir al final

Muchas gracias, había probado algo parecido, pero no así.
Funciona perfectamente, un saludo :D
  #4 (permalink)  
Antiguo 11/03/2010, 17:26
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Respuesta: Abrir fichero para escribir al final

De nadas
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Etiquetas: escribir, fichero, final
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:08.