c ++ cin缓冲区有大小限制吗?

时间:2016-11-06 22:12:57

标签: c++

我是c ++的新手,所以我在做一些练习问题。我希望从用户那里获得300个号码并打印出最大的号码。首先,我使用此代码来请求输入:

cout << "Enter the array\n";

然后我将300号码粘贴到终端并按回车键。然后使用此代码捕获输入:

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;
}

1 个答案:

答案 0 :(得分:0)

我可以在标准中找到IO缓冲区的指定大小限制,但可能存在操作系统输入缓冲区。