Mam taką oto listę która po uzupełnieniu zostaje zapisana do pliku:
typedef struct oso{
char imie[30];
char nazwisko[30];
char prezent[50];
float kwota;
char kupno[1];
float koszt;
struct oso * next;
}osoby;
osoby * dodaj(osoby * wsk, osoby * aaa){
float a=0;
osoby * temp;
if(!aaa){temp = malloc(sizeof(osoby));
memset(temp, 0, sizeof(osoby));
printf("Podaj imie: ");
scanf("%s",&temp->imie);
fflush(stdin);
printf("\nPodaj nazwisko: ");
scanf("%s",&temp->nazwisko);
fflush(stdin);
strcpy(temp->prezent,"N");
printf("\nPodaj kwote jaka chce przeznaczyc na prezent: ");
scanf("%f",&temp->kwota);
fflush(stdin);
strcpy(temp->kupno,"N");
temp->koszt=a;
fflush(stdin);
}else{
temp = aaa;
temp->next = NULL;}
if(!wsk){
return temp;
}
else{
osoby * poczatek = wsk;
while(wsk->next)wsk=wsk->next;
wsk->next=temp;
return poczatek;
}
}
void zapislisty1(osoby *wsk, char *nazwa)
{
FILE *plik;
if((plik=fopen(nazwa,"wb"))==NULL);
{
printf("blad otwarcia pliku");
}
while(wsk)
{
fwrite(wsk, sizeof(osoby)-sizeof(osoby *),1,plik);
wsk=wsk->next;
}
if(fclose(plik)!=0)
{
printf("Blad zamkniecia pliku!");
}
}
Chciałbym teraz napisać funkcję która na początku programu wczyta zawartość pliku do listy jednak kompletnie mi to nie wychodzi.
Czy może ktoś mi z tym pomóc ?
Przy okazji czy funkcja zapisu do pliku jest poprawnie napisana ? Bo mam co do niej wątpliwości jednak nie mogę sprawdzić ponieważ nie wiem jak napisać odczytywanie.