Anonymní profil Anonymní uživatel – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Anonymní uživatel – Programujte.comAnonymní profil Anonymní uživatel – Programujte.com

 

Příspěvky odeslané z IP adresy 193.84.36.–

Anonymní uživatel
C / C++ › problém se vstupem a výstupe…
22. 6. 2009   #110937

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;

}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý