Zapis danych z pliku do struktury.

0

Cześć,
Mam problem polegający na tym, że nie mogę odpowiednio zapisać danych umieszczonych w pliku do struktury w programie.
W pliku są umieszczone kolejno cztery zmienne tworzące strukturę dla każdej osoby (każda zmienna bez spacji - jednowyrazowa/członowa)
i problem leży w tym by bez uprzedniej wiedzy o ilości osób, których dane są w pliku zapisać te dane do struktury.
Próbowałem użyć instrukcji eof() ale zawsze wychodzi mi o jedną osobę za dużo (nie da się tego raczej cofnąć przez zwykłą dekrementacje).
Próbowałem też odczytać ilość linijek i podzielić na cztery lecz po odczytaniu zmieniały się odczytywane zmienne na puste pola.
Pierwotnie program bazował na tym, że ilość danych była podana w pierwszej linijce ale moim zadaniem jest zrobienie tego bez tej informacji.
A tutaj funkcja:

void Wczytaj()
   {
       fstream plik;
       plik.open("baza.txt",ios::out);
       if(!plik)
        cout<<"pliku nie otwarto:"<<endl;
        else
       {
                int j = 0;
                    while(!plik.eof())
                    {
                        plik >> czlowiek[j].imie;
                        plik >> czlowiek[j].nazwisko;
                        plik >> czlowiek[j].wiek;
                        plik >> czlowiek[j].telefon;
                        i++;
                        j++;
                    }
       }
       cout<<"Wczytano dane. Nacisnij ENTER.";
       plik.close();
       system("pause");
       getchar();
   }

gdzie 'i' to zmienna globalna zliczająca ilość osób w bazie.
Byłbym wdzięczny z każdą pomoc ;).
W razie czego tutaj jest cały program: http://wklej.org/id/1393038/

1
                 while(true)
                    {
                        plik >> czlowiek[j].imie;
                        plik >> czlowiek[j].nazwisko;
                        plik >> czlowiek[j].wiek;
                        plik >> czlowiek[j].telefon;
                        if(plik.eof()) break;
                        i++;
                        j++;
                    }
                 while(plik >> czlowiek[j].imie >> czlowiek[j].nazwisko >> czlowiek[j].wiek >> czlowiek[j].telefon) ++j;
                 i=j;
0

Wielkie dzięki, działa :).

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