C++学習ノート(一):数不定の入力データを読み取る

870 ワード

プログラムの作成中にこのような状況に遭遇することがあります.時には入力の量を得る必要がありますが、入力の量がどれだけあるか分かりません.では、どうやってこれらの入力の量を取得しますか.最初はforやwhileループを使って入力を1つずつ取得しようと思っていましたが、入力の個数が具体的にどのくらいあるか分かりません.では、判断するときは判断しにくいので、どうすればいいのでしょうか.
その後,比較的迅速な方法が発見されたが,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は無効な状態になり、ループは停止します.