Už nějakou dobu řeším problém na svém programu a stále na to nemůžu přijít. Při ukládání spojového seznamu do souboru se mi jako poslední položka ve struktuře se vypíše např cesty k ovladačům mé grafické karty a podobné nesmysly. Prostě poslední položka je naprosto nesmyslná.
Poradí mi někdo, jak se toho mám zbavit??
Moje struktura:
typedef struct prvek
{
char nazev[50];
char autor[30];
int rok;
char vydavatel[50];
struct prvek *back;
struct prvek *next;
}PRVEK;
Uložení struktury do souboru:
f=fopen("soubor.bin", "wb+");
for (p = head; p!= NULL; p=p->next)
{
fwrite(p->nazev,50,1,f);
fwrite(p->autor,30,1,f);
fwrite(&p->rok,sizeof(int),1,f);
fwrite(p->vydavatel,50,1,f);
fclose(f);
}
Načtení ze souboru:
if((f = fopen("soubor.bin", "rb+"))!=NULL)
{
while(!feof(f))
{
pridej(nacteni(f));
}
fclose(f);
}
--------------------
PRVEK *nacteni(FILE *f)
{ PRVEK *p;
p = (PRVEK *)
malloc( sizeof ( PRVEK ) );
if (p == NULL)
{
printf("Nelze alokovat pamet.\n");
exit( 1 );
}
fread(p->nazev,50,1,f);
fread(p->autor,30,1,f);
fread(&p->rok,sizeof(int),1,f);
fread(p->vydavatel,50,1,f);
p->next = NULL;
return p;
}
-----------------
void pridej( PRVEK *e)
{
PRVEK *p;
if (head == NULL)
{
head = e;
return;
}
for (p = head; p->next != NULL; p = p->next);
p->next = e;
}
Příspěvky odeslané z IP adresy 193.84.36.–
Anonymní uživatel