W tym kodzie nie ma getline() skad mamy wiedzieć jak go używasz?
Nie podałeś formatu danych, który wczytujesz, np.
Jan
Nowak
nie zadziała z getline() tak jak chcesz 3. getline() działa 4. Przyczyn może być wiele, ale prawdopodobnie, nie umiesz używać stl-a 5. Możesz to “naprawić” (celowo wzięte w cudzysłów, bo nic zepsute nie jest) np. wczytując dwa napisy, a następnie wykonując na nich konkatenację. Szybki przykład potwierdzający, że getline() działa (g++ 4.7.x):
#include
#include
int main () {
std::string name_and_surname;
std::cout << "Please, enter your name and surname: ";
std::getline (std::cin,name_and_surname);
std::cout << "Hello, " << name_and_surname << "!\n";
return 0;
}
Masz problem z utrzymaniem czytelności kodu (sam się gubisz), bo pogwałciłeś wszystkie możliwe zasady pisania czytelnego kodu.
Twój format powinien być taki (według tego co jest w kodzie)
Liczba aktorów
Numer operacji
Imię i Nazwisko
Liczba fanów
Numer operacji
Imię i Nazwisko
Liczba fanów
Numer operacji
Imię i Nazwisko
Liczba fanów
...
Dodatkowo brakuje cin.ignore() przed wywołaniem getline(). cin zostawia w strumieniu ‘\n’ i to może być przez to.
Generalnie po pierwsze popraw czytelność. Oddziel wczytywanie danych od logiki aplikacji. Konstruktor to chyba najmniej odpowiednie miejsce do czytania danych. Głownie dlatego, że z punktu logicznego obiekt już istnieje, a jeśli kiedykolwiek wprowadzisz walidację danych, to obiekt w przypadku niezaliczenia jej, nie powinien zostać utworzony. Ponadto takim stylem programowania silnie wiążesz swoja klasę z jedynym słusznym sposobem wprowadzania danych. O wiele lepiej po prostu przekazać te dane jako zależności.