我現在開始用C++,所以我想這將是一個非常容易新手的問題。爲什麼在cin裏面不停地獲取用戶輸入?
那麼,爲什麼內部的「cin >> x」行不停止循環以獲取用戶輸入(如果用戶輸入字符,而不是數字)呢?
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int x = 0;
cout << "Please, enter x: ";
cin >> x;
while (!cin)
{
cout << "Please, it must be a number!\n";
cin >> x;
}
cout << "Thanks!.";
cin.ignore();
cin.ignore();
}
我幾乎沒有兩天正在學習C++,所以我完全不知道「cin」究竟是什麼。我嘗試了「cin.sync()」和「cin.clear()」,但仍然沒有運氣。 而且我知道不可能做類似「cin = true」或「cout < < cin」的東西。
謝謝!現在有效。 我想用cin.clear();和cin.ignore();但不知道cin.ignore裏面有什麼「1000」。 現在我有一條路要走。感謝代碼和鏈接! – Reaversword