我希望用戶輸入一個字符串,雙倍和一個長,但事情是在第一次之後,該字符串被忽略,並留空,並提示爲雙直。取第一個字符串輸入,然後忽略其餘
這裏是我的代碼:
#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