Я новичок в C++, поэтому у меня были некоторые проблемы с практикой. Я хочу получить 300 номеров от пользователя и распечатать наибольшее число. Во-первых, я использую этот код, чтобы задать для ввода:C++ Существует ли ограничение размера для cin-буфера?
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, снова нажмите Enter) код работает просто отлично. Итак, я предполагаю, что для буфера есть ограничение на количество входящих в него данных. Я прав? Как работает 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;
}
Стандарт C++ не требует максимума во входном буфере. Ваша операционная система может наложить свои собственные ограничения. –
Я использую Xcode, должен ли я искать некоторые настройки в Xcode? –
Я бы использовал командную строку и передал/перенаправлял файл с вашим входом через вашу программу. – Galik