С ++ getline () не ожидает ввода с консоли при многократном вызове

Я пытаюсь получить несколько вводимых пользователем параметров из консоли две струны, две четверки и дубль. Соответствующий код, который я пытаюсь использовать, следующий:

#include <string>
#include <iostream>
using namespace std;

// ...

string inputString;
unsigned int inputUInt;
double inputDouble;

// ...

cout << "Title: "; 
getline(cin, inputString);
tempDVD.setTitle(inputString);

cout << "Category: "; 
getline(cin, inputString);
tempDVD.setCategory(inputString);

cout << "Duration (minutes): "; 
cin >> inputUInt; 
tempDVD.setDuration(inputUInt);

cout << "Year: "; 
cin >> inputUInt; 
tempDVD.setYear(inputUInt);

cout << "Price: $"; 
cin >> inputDouble; 
tempDVD.setPrice(inputDouble);

Однако при запуске программы вместо ожидания ввода первой inputString код не останавливается до второго вызова getline (). Таким образом, вывод консоли выглядит так:

Заголовок: Категория:

с курсором, появляющимся после категории. Если я введу сейчас, программа перейдет к вводу года, не позволяя мне ввести более одной строки. Что здесь происходит?

21
задан ildjarn 16 October 2011 в 21:25
поделиться