2017-11-03 44 views
-1

hellow guys実行時にEnterキーを押さずに、一度に9個の整数を配列に追加したい。 C++で同時に9つの整数を配列に追加する方法を教えてください。 ありがとう!C++で同時にcinを使って配列に整数を追加する

+0

'のstd :: cin''のstd ::と削除者のためのいくつかのルールでそれを解析する。 – George

+0

https://stackoverflow.com/a/1321154/3754223 – MABVT

+3

[複数の数値を含む文字列を整数に変換]の可能な複製(https://stackoverflow.com/questions/1321137/convert-string-containing-several-numbers -into-integer) – MABVT

答えて

1

コンソールの入力が完了した直後に各整数値を処理したい場合(たとえば、空白で次の整数値が始まることが示されている場合)は、不適切な位置にあります。

理由は、(あなたのC++プログラムは、影響を与えることができるものの越えた)端末入力が頻繁にバッファリングされ、そしてEnterまたはEOFが端末に押されるまでにもcinは、任意の文字を受信しないかもしれないということです。

conio.hまたはncursesのような回避策が存在する可能性がありますが、コンソール入力に緊密に接続された本番環境用の整数スキャンを実際に実装する必要がない場合は、標準ではない可能性があります。

するだけでは十分で入力して、「満たされた」それを試してみて、すでにあるストリームからの入力にコンソールから直接取得の入力を比較します。代わりにSTRING`

int main() { 

    stringstream ss("12 34 56 78 90 10 11 12 13"); 
    //istream &in = ss; // would output each integer immediately. 

    istream &in = cin; // will probably wait for enter before processing begins. 

    int value = 0; 
    for (int i=0; i<9; i++) { 
     if (! (in >> value)) 
      break; 
     cout << value << "; "; 
    } 
} 
関連する問題