Problem z odczytaniem danych z pliku

0

Mam pewien problem, mam plik z danymi w postaci:
55 imie nazwisko dane lorem
44 imie naziisko dane lorem

Chciałbym wczytywać dane wiersz po wierszu przy użyciu funkcji

void read_to_tree()
{
    students *tmp = NULL;
    tmp = (students *)malloc(sizeof(students));
    FILE * F;
    F = fopen ("tree.txt", "r");
    fscanf(F, "%i %s %s %s %s", &tmp->id, tmp->first_name, tmp->last_name, tmp->subject, tmp->dept);
    add_totree(tmp, root);
    fclose(F);
    
}

Wczytuje tylko pierwszy wiersz danych z pliku.
Chciałbym, żeby wczytywało wszystkie wiersze.
Próbowałem rożnymi sposobami, lecz nie mogę uzyskać zamierzanego efektu.
Proszę o pomoc.

0

A możesz konkretnie napisać czego oczekiwałeś a co sie dzieje? Bo teraz to mozemy najwyżej wróżyć z fusów albo z ręki.

0

Racja, wczytuje tylko pierwszy wiersz danych z pliku.
Chciałbym, żeby wczytywało wszystkie wiersze.

0

Ty tak serio? Ja w kodzie widzę JEDNO fscanf(F, "%i %s %s %s %s", &tmp->id, tmp->first_name, tmp->last_name, tmp->subject, tmp->dept); więc i wczytuje sie jedna linijka. Czemu spodziewasz się wczytania czegoś wiecej? o_O

0
void read_to_tree()
{
    students *tmp = NULL;
    tmp = (students *)malloc(sizeof(students));
    FILE * F;
    F = fopen ("tree.txt", "r");
    while(!feof(F)) {
           fscanf(F, "%i %s %s %s %s", &tmp->id, tmp->first_name, tmp->last_name, tmp->subject, tmp->dept);
           add_totree(tmp, root);
    }
    fclose(F);
 

Wypada zrobić jakąś pętlę, jeśli jakaś czynność ma się wykonać więcej niż jeden raz...

1 użytkowników online, w tym zalogowanych: 0, gości: 1