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/