1. 程式人生 > >C++學習筆記(一):讀取數量不定的輸入資料

C++學習筆記(一):讀取數量不定的輸入資料

    在程式的編寫過程中會遇到這樣的情況,有時候我需要得到輸入的量,但是又不知道輸入的量有多少,那此時怎麼把這些輸入的量獲取呢? 一開始我想的是使用for或者while迴圈來逐個獲取輸入,但是我不知道輸入的個數具體有多少,那麼判斷的時候又不好判斷,這可如何是好?

    後來發現了一種比較快捷的方法,但是前提是必須對C++中的cin和cout有深刻的理解。程式碼如下:

#include <iostream>

int main()
{
     int  sum = 0, value = 0;
     //讀取資料直到遇到檔案尾,計算所有輸入的值的和
     while(cin >> value)//此處是重點
      {
          sum += value;
       }
      cout << " sum is: "<< sum <<endl;
      return 0;
}
如果輸入 1 2 3 4

結果輸出 sum is:10

    while迴圈的判據就是表示式cin >> value,這個表示式代表從標準輸入中讀取下一個數,儲存在value中。輸入運算子返回的是其左側的物件,即cin。故這個迴圈檢測的實際上是cin。

    當使用一個istream(即cin)物件作為條件時,其效果是檢測流的狀態。若流有效,沒有遇到錯誤,那麼檢測成功。當遇到檔案結束符或者無效輸入(本例中無效輸入為非整型)時,cin會處於無效狀態,迴圈會停止。