Witam, obecnie funkcja "nowy" wczytuje poprawnie tytuł i autora książki z pliku (bez pętli while) , chciałbym zastosować pętle tak aby funkcja wczytała mi wszystkie 20 elementów (z pliku) jednak żaden warunek jak dotąd nie był poprawny bowiem funkcja przestaje wyświetlać cokolwiek. Dziękuję z góry za pomoc.
struct ksiazka
{
char *tytul;
char *autor;
int *rok_wydania;
struct ksiazka *next;
} ksiazka;
// wskaznik do struktury glownej
struct ksiazka *dodaj_ksiazka;
struct ksiazka *poczatek = NULL;
struct ksiazka *koniec = NULL;
// dodaje elementy struktury do pamieci
void nowy()
{
char t[max];
char a[max];
int r;
FILE *lista_ksiazek = fopen("lista_ksiazek.txt","r");
while((fscanf(lista_ksiazek,"%s",t)) != EOF) // nic nie wyświetla
{
dodaj_ksiazka = malloc(sizeof (ksiazka));
fscanf(lista_ksiazek,"%s",t);
dodaj_ksiazka->tytul=malloc(sizeof(char) * strlen(t));
strcpy( dodaj_ksiazka->tytul, t );
fscanf(lista_ksiazek, "%s",a);
dodaj_ksiazka->autor=malloc(sizeof(char) * strlen(a));
strcpy( dodaj_ksiazka->autor, a );
fscanf(lista_ksiazek, "%d",r);
dodaj_ksiazka->rok_wydania=malloc(sizeof(int) * r);
dodaj_ksiazka->rok_wydania = r;
dodaj_ksiazka -> next = NULL;
if (poczatek == NULL)
{
poczatek = dodaj_ksiazka;
koniec = dodaj_ksiazka;
}
else
{
koniec->next = dodaj_ksiazka;
koniec = dodaj_ksiazka;
}
}
fclose(lista_ksiazek);
}