Mam taka o to sytuacjie
Chce Wczytac z Pliku liste do vectora mojej klasy po czym posortowac ja wedlug elementu string w tej ze klasie
a nastepnie zapisac ja do tego samego pliku.
Jednak przeciazony operator << cos sobie dziwnego ubzdural i zawsze wczytuje o 1 porcje danych za duzo to znaczy ostatnie 2 porcje danych sa zdublowane nie wiedziec dlaczego... oto fragment kodu
// przeciazony operator
ostream& operator <<(ostream &plik, const Czlowiek &cz)
{
return plik << cz.nick << " " << cz.przegrane << " " << cz.rozegrane << " " << cz.wygrane<< " ";
}
// funkcja wczytujaca zawodnikow
vector <Czlowiek> WczyZawodnikow(void)
{
fstream zawodnicy;
Czlowiek pom;
zawodnicy.open("Zawodnicy.txt", ios::in);
vector <Czlowiek> Lgraczy;
vector <Czlowiek>::iterator it;
while(!zawodnicy.eof())
{
zawodnicy >> pom;
Lgraczy.push_back(pom);
}
sort(Lgraczy.begin(), Lgraczy.end(), mycmp);
cout << Lgraczy.size();
for(int x=0;x<Lgraczy.size(); x++)
Lgraczy[x].wypisz();
zawodnicy.close();
return Lgraczy;
}
a to przykladowe dane Witek 2 2 0 Wiesiek 5 9 4 Jan 1 2 1 Jacek 0 0 0 Adam 5 8 3
ktos ma jakis pomysl czemu ostatni zawodnik jest dublowany idodawany podwojnie ?