Hola
Necesito introducir registros en un fichero con toda las estaciones de metro, en un principio el programa me funciona bien, los añade al final del fichero,pero al llegar al registro 75 me borra el primer registro, el 76 me borra el segundo y asi, vamos que solo me permite tener a la vez 75 registros.
los registros son en forma de estructura de tres campos.
el fichero lo abro como ab+
si alguien tiene alguna pista...
gracias
incluyo el programa y el fichero con las estaciones que crea, para que no tengais mas que probar:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define NOM_FICHERO "metro.bin"
#define NOMBRE 20
#define MAX_LINEAS 12
struct lineas Introducir_Datos (struct lineas estacion);
enum estados {KO, OK};
struct lineas
{
char nombre[NOMBRE];
unsigned short int linea;
enum estados estado;
};
void main ()
{
struct lineas estacion;
FILE *fichero;
fichero = fopen (NOM_FICHERO,"ab");
rewind (fichero);
estacion = Introducir_Datos(estacion);
while(strlen (estacion.nombre)!= 0 )
{
fwrite (&estacion, sizeof(estacion),1,fichero);
estacion = Introducir_Datos(estacion);
}
rewind (fichero);
fread (&estacion, sizeof(estacion),1,fichero);
while(!feof(fichero))
{
printf ("\n\n\t Linea : %d", estacion.linea);
printf ("\n\t Estacion : %s", estacion.nombre);
printf ("\n\t Estado : %d", estacion.estado);
fread (&estacion, sizeof(estacion),1,fichero);
}
getch();
fclose (fichero);
}