Struktura nie działa wczytywanie getline

Struktura nie działa wczytywanie getline
M2
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,
Mam taką prostą strukturę. Problem polega na tym, że nie wiem jak wczytać string ze spacjami. Funkcja getline(cin, samochod[i].marka) nie działa i przechodzi od razu do następnej linii :Rok produkcji.

Kopiuj
#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

struct car 
{
    string marka;
    int rok_budowy;
};

int main(int argc, char** argv)
{
    int ile;
    cout << "Ile samochodów chcesz skatalogować? "; cin >> ile;

    car *samochod = new car[ile];

    for(int i = 1; i<ile ;++i)
    {
        cout << "Samochód #" << i << ":\n";
        cout << "Proszę podać markę: " ; 
        getline(cin, samochod[i].marka);

        cout << "Rok produkcji: "; cin >> samochod[i].rok_budowy;
    }

    return 0;
}
AlfaLeporis
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Polska
0

Spróbuj z cin.getline - strona z przykładem poniżej:

http://stackoverflow.com/a/5838723/2066024

M2
  • Rejestracja: dni
  • Ostatnio: dni
0

Z tego co wiem to cin.getline jest do char a nie do stringów. Chciałbym, żeby ktoś obeznany w temacie powiedział mi dlaczego to nie działa.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
#include <iomanip>
...
getline(cin>>ws,samochod[i-1].marka); // indeksacja tablic od 0
M2
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki działa pytanie dlaczego działa i dlaczego poprzednia wersja nie działała ?:)

M2
  • Rejestracja: dni
  • Ostatnio: dni
0

Ok dzięki:)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.