Cześć mój program ma klasę Pojazd i trzy klasy dziedziczne: Samochód, Motocykl i Rower. Klasa bazowa ma składowe takie jak model, przebieg, cena. Każda z klas dziedzicznych dodaje swoje składowe (np. Samochód ma zmienna iloscDrzwi, moc itp.) Moje pojazdy przechowuję w wektorze inteligentnych wskaźników. Program ma możliwość zapisywania elementów do pliku. Przykładowy plik txt wygląda tak:
Passat czerwony 80017 565 0 55 10 10.2 170 3
Yamaha niebieski 16004 25 0 12 4 2.4 40
Trek czarny 4000 10 0 1
Nie mam jednak pomysłu jak mógłbym wczytać takie dane z pliku do wektora. Problematyczne jest dla mnie to że każdy rodzaj pojazdu ma inną ilość zmiennych. W poprzedniej wersji programu, która miała tylko jedną klasę Samochod wczytywałem dane w ten sposób, jednak teraz nie ma prawa to zadziałać z uwagi na to że mam parę klas z różnymi zmiennymi.
while (plikP >> model >> pojemnoscBaku >> cena >> spalanie >> moc >> paliwo >> przebieg)
{
Samochod wczytajSamochod(model, pojemnoscBaku, cena, spalanie, moc, paliwo, przebieg); //wektor pomocniczy
samochody.push_back(wczytajSamochod);
}
Jedyne na co wpadłem to aby dołożyć do każdej klasy informacje jakiego rodzaju jest to pojazd (np. dla samochodu: char rodzaj = 'S'), po czym zapisywać tą informacje jako pierwszą w każdej linii. Następnie podczas wczytywania stworzyć instrukcje sprawdzająca co kryję się pod pierwszym wyrazem w każdej linii, a następnie uruchomić odpowiednią pętle while wczytującą dane odpowiedne dla każdego rodzaju pojazdu. Jednak nie mam pojęcia jak napisać kod który czyta tylko pierwszy wyraz z linii, po czym wykonuję odpowiednią instrukcje, po której przechodzi do następnej linii powtarza całą operacje.
Czy ktoś byłby wstanie pomóc mi zrealizować mój pomysł lub zasugerować inne rozwiązanie mojego problemu?