Problem z wczytywaniem danych poprzez getline()

0

Napotkałem na taki problem, że mój program wczytuje coś do stringa poprzez getline() ale nie chce wczytać tego, co występuje później. Może łatwiej będzie jak zamieszczę kod:

#include <iostream>
#include <string>

using namespace std;

struct car
{
    string marka;
    int rok_produkcji;
};

int main() 
{
    cout << "Ile samochodow chesz skatalogowac? ";
    int ile;
    cin >> ile;
    
    car *samochody = new car[ile];
    for (int i = 0; i < ile; i++)
    {
        cout << "Samochod #" << i+1 << ":\n";
        cout << "Prosze podac marke: ";
        getline(cin, samochody[i].marka);
        cout << "Rok produkcji: ";
        cin >> samochody[i].rok_produkcji;
    }
    for (int j = 0; j < ile; j++)
    {
        cout << samochody[j].rok_produkcji << " " << samochody[j].marka;
    }
    
    return 0;
}

Program nie chce nic wczytywać prócz tego stringa... To już któryś raz się spotykam z takim czymś... Gdy do wczytania jest sam string, to nie robi żadnego problemu.

BTW sory, że tutaj to wylądowało a nie w Newbie :( Gdyby ktoś mógł to przenieść...

1
for (int i = 0; i < ile; i++)
    {
        cin.ignore();
        cout << "Samochod #" << i+1 << ":\n";
        cout << "Prosze podac marke: ";
        getline(cin, samochody[i].marka);
        cout << "Rok produkcji: ";
        cin >> samochody[i].rok_produkcji;
    }
    for (int j = 0; j < ile; j++)
    {
        cout<<samochody[j].rok_produkcji<<" "<<samochody[j].marka;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
0

Właśnie o to mi chodziło... Tak myślałem, że ma to coś wspólnego z tym, że w cin zapisuje się wartość nowego wiersza ale nie wiedziałem jaka funkcja jest odpowiedzialna za zignorowanie tego :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1