Witam, rozpocząłem dziś naukę C++ obiektowo (kurs Mirosława Zelenta) i na końcu odcinka polecono wykonać proste zadanie domowe z programowania obiektowego. Trzeba dodać obiekty do "bazy". Wszystko szło pięknie, do momentu gdy zechciałem wpisać z klawiatury kilka wyrazów oddzielonych od siebie spacją. W przypadku wywołania funkcji na rzecz pierwszego obiektu wszystko idzie zgodnie z planem, lecz przy dodawaniu drugiego obiektu ucina mi pierwszą linię do wpisania, efekt jak na załączniku.
A tutaj kod:
#include <iostream>
using namespace std;
class Samochod
{
public:
string marka;
string model;
int rocznik;
int przebieg;
void wczytaj()
{
cout<<"DODAWANIE NOWEGO SAMOCHODU DO BAZY"<<endl<<endl;
cout<<"Podaj marke samochodu: "<<endl;
getline(cin,marka);
cout<<"Podaj model samochodu: "<<endl;
getline(cin,model);
cout<<"Podaj rocznik samochodu: "<<endl;
while(!(cin>>rocznik))
{
cout << "To nie jest liczba! Podaj prawidlowa wartosc: ";
cin.clear();
cin.ignore(9999, '\n');
}
cout<<"Podaj przebieg samochodu: "<<endl;
while(!(cin>>przebieg))
{
cout<<"To nie jest liczba! Podaj prawidlowa wartosc!: ";
cin.clear();
cin.ignore(9999, '\n');
}
}
void wypisz()
{
cout<<endl<<"Marka samochodu to: "<<marka<<endl;
cout<<"Model tego samochodu to: "<<model<<endl;
cout<<"Rocznik tego samochodu to: "<<rocznik<<endl;
cout<<"Przebieg tego samochodu wynosi: "<<przebieg<<endl<<endl;
}
};
int main()
{
Samochod s1;
s1.wczytaj();
s1.wypisz();
Samochod s2;
s2.wczytaj();
s2.wypisz();
}