2016-02-27 62 views
-4

在我的C++的書,有這樣的循環:爲什麼cin用作循環條件?

vector<double> temps; // temperatures 
for (double temp; cin>>temp;) // read and put into temps 
    temps.push_back(temp); 

這似乎永遠循環下去。我無法停止這個循環。這有什麼用途?

+1

我編輯你的問題的方法很多,試圖使它更清晰。如果您不同意編輯,請隨時將其改回。 –

回答

0

operator>>將返回流(cin),它本身可以轉換爲表示流是否仍然有效的bool。這將循環直到導致cin的讀取失敗(文件結束,字母而不是數字等)。

0

這是類似的:

int num; 
    while(cin.good()) //could also use while(cin) 
    { 
     cin >> num; 
     cout << num << endl; 
    } 

你在哪裏連續讀取數字並打印出來。輸入一個非數字會導致輸入流失敗,因此cin.good()會變成false(流不再好)