Я хочу, чтобы пользователь вводил строку, двойную и длинную, но это происходит после первого раза, строка вроде проигнорирована и оставлена пустой и запрашивает двойную непосредственно., берущий первый ввод строки, а затем игнорируя остальные
вот мой код:
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
double price;
long serial;
cout << "Enter the dvd's name: "; getline(cin, name);
cout << "Enter the dvd's price (in $): "; cin >> price;
cout << "Enter the dvd's serial number: "; cin >> serial;
cout << endl;
cout << "Enter the dvd's name: "; getline(cin, name);
cout << "Enter the dvd's price (in $): "; cin >> price;
cout << "Enter the dvd's serial number: "; cin >> serial;
return 0;
}
, как вы можете увидеть в первый раз, я могу ввести строку во второй раз просто посылает меня непосредственно к дублю, и даже если я игнорировал пропуская строку, и поместите двойной, а затем длинный, он будет печатать имя как пустую строку.
Что не так с моим кодом?
Вы можете попробовать [промывке 'cin'] (http://stackoverflow.com/questions/257091/how-do-i- flush-the-cin-buffer) перед вызовом 'getline' снова –
Это такая распространенная проблема. Я уверен, что здесь уже много раз спрашивали. – chris