Problema con Metodo Hash
Estoy creando un programa el cual se guardan la informacion mediante un metodo hash. El problema es que no me lo respeta, si lo abro en modo at+, me manda al ultimo y si lo abro en "w" me lo destruye. Alguien sabe una manera para que no me destruya la información respetandome el metodo hash? saludos.
Código usado:
write ()
{
int hash;
FILE * archivo;
if((archivo = fopen ("archivo.txt", "at+"))==NULL)
puts ("ERROR");
else
{
rewind(archivo);
fflush(stdin);
hash=hashmod(libro.clave);
fseek(archivo, (hash*sizeof(libro)), SEEK_SET);
fwrite (&libro, sizeof(libro),1,archivo);
fclose (archivo);
}
return 0;
}
Código usado:
write ()
{
int hash;
FILE * archivo;
if((archivo = fopen ("archivo.txt", "at+"))==NULL)
puts ("ERROR");
else
{
rewind(archivo);
fflush(stdin);
hash=hashmod(libro.clave);
fseek(archivo, (hash*sizeof(libro)), SEEK_SET);
fwrite (&libro, sizeof(libro),1,archivo);
fclose (archivo);
}
return 0;
}