2016-11-06 18 views
1

私はC++を初めて使うので、練習問題をいくつかやっていました。私はユーザーから300の数字を取得し、最大の番号を印刷したい。まず、このコードを使用して入力を要求します。C++ cinバッファのサイズ制限はありますか?

cout << "Enter the array\n"; 

次に、300の数字を端末に貼り付けてEnterキーを押します。次に、このコードを使用して入力をキャプチャします。

int count = 300; 
int inputArray[count]; 
for (int i = 0; i<count; ++i) { 
    cin >> inputArray[i]; 
} 

このコードは機能しません。数字が増えてきます。

しかし、一度に150個の数字をペーストすると(たとえば、ペースト1~150、Enterキーを押し、151~300をペーストしてもう一度入力してください)、コードはうまく動作します。だから、私はそれが処理できる入力の数にバッファのための制限があると思います。私は正しい? std :: cinはどのように動作しますか?

サイド質問:cinを使用する代わりにファイルからデータを取得する必要がありますか?

私の完全なコード:

#include <string> 
#include <iostream> 
using namespace std; 
int main() 
{ 
    int count = 300; 
    cout << "Enter the numbers\n"; 
    int inputArray[count]; 
    for (int i = 0; i<count; ++i) { 
     cin >> inputArray[i]; 
    } 
    cout << "Got input\n"; 
    int bigNum = inputArray[0]; 
    for (int i=1; i<count; ++i) { 
     int in = inputArray[i]; 
     if (in > bigNum) { 
      bigNum = in; 
     } 
    } 
    cout << "The largest number is " << bigNum << endl; 
    return 0; 
} 
+2

C++標準では、入力バッファに最大値は必要ありません。お使いのオペレーティングシステムには、独自の制限が課されることがあります。 –

+0

私はXcodeを使用していますが、Xcodeのいくつかの設定を調べるべきですか? –

+0

私はコマンドラインを使用し、あなたのプログラムを使ってあなたの入力でファイルをパイプ/リダイレクトします。 – Galik

答えて

0

私は標準で見つけることができるIOバッファには指定されたサイズの制限はありませんが、あなたのOSの入力バッファ用があるかもしれません。

関連する問題