Witam.
Robiąc zadanie z książki p. Praty natknąłem się na pewien problem - program, który napisałem pozwala mi tylko raz wczytać markę, potem się wywala. Problem pewnie leży z funkcją getline(). W internecie znalazłem polecenie, żeby wpisać po getline() cin.get().
1.Czy ktoś mi może wytłumaczyć dlaczego to jest konieczne? Czy po getline() coś zostaje w kolejce wejściowej? Jaką funkcję tu spełnia cin.get()?
2.Co dopisać, żeby program przestał się wywalać? To znaczy pozwalał wczytać dane do dynamicznej tablicy struktur, a potem je wyświetlił?
Dziękuję za pomoc.
#include <iostream>
using namespace std;
struct car
{
string marka;
int rok;
};
int main()
{
int ile_aut;
cout << "Ile samochodow chcesz skatalogowac?" << endl;
cin>>ile_aut;
car* samochody=new car[ile_aut];
for(int i=0;i<ile_aut;i++)
{
cout<<"Samochod #"<<i+1<<":\n";
cout<<"Marka: ";
getline(cin,samochody[i].marka);
cin.get(); //dlaczego takie coś?
cout<<"Rok: ";
cin>>samochody[i].rok;
}
for(int i=0;i<ile_aut;i++)
{
cout<<samochody[i].rok<<" "<<samochody[i].marka;
}
delete []samochody;
return 0;
}