0

私はこのコードを持っています:

int obj;

    while ( std::cin >> obj )
    {
        std::cout << obj << std::endl ;
        int temp = obj ;
        ++ temp;
        std::cout << temp << std::endl ;
    }

適切な整数を入力すると、出力が理解できます。

例えば。入力として 12 を取得すると、コンソールに次のように表示されます。

12
12
13

しかし、空白を含む整数を入力として与えると、出力を理解できないようです。

例えば。入力として 12 12 12 12 を指定すると、コンソールに次のように表示されます。

12 12 12 12
12
13
12
13
12
13
12
13

誰か説明してもらえますか?

4

4 に答える 4

0
int obj; 
cin >> obj;

cinは、整数に属さない文字が見つかるか、データがなくなるまで、入力から有効な整数データを読み取ります。最初の例では、cin は入力の最後にヒットし、数値を返します。2番目の例では、cinは文字列から入力を読み取り、"12 12 12 12"入力ストリームから最初の整数を抽出してに書き込みますobj。while ループの次の実行では、cin は文字列に直面し"12 12 12"(入力ストリームから最初の数値を抽出/削除したため)、読み取る入力がなくなるまでストーリーが続きます。

于 2013-06-25T07:53:32.540 に答える