2016-11-06 1 views
1

Ich bin neu in C++, also habe ich ein paar Übungsprobleme gemacht. Ich möchte 300 Nummern vom Benutzer bekommen und die größte Zahl ausdrucken. Zuerst verwende ich diesen Code für die Eingabe zu fragen:C++ Gibt es eine Größenbeschränkung für den cin-Puffer?

cout << "Enter the array\n"; 

Dann füge ich 300-Nummer in das Terminal und die Eingabetaste drücken. Dann verwenden Sie diesen Code, um die Eingabe zu erfassen:

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

Und der Code funktioniert nicht, es fragt nur nach immer mehr Zahlen.

Aber wenn ich 150 Zahlen auf einmal einfügen, (zum Beispiel, 1 bis 150 einfügen, drücken Sie die Eingabetaste, fügen Sie dann 151 bis 300, drücken Sie die Eingabetaste erneut) der Code funktioniert gut. Also, ich schätze, es gibt eine Grenze für den Puffer, wie viele Eingaben er verarbeiten kann. Habe ich recht? Wie funktioniert std :: cin?

Side Frage: soll ich die Daten aus einer Datei anstelle von cin bekommen?

Mein vollständiger Code:

#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

Der C++ - Standard erfordert kein Maximum für den Eingabepuffer. Ihr Betriebssystem kann eigene Einschränkungen auferlegen. –

+0

Ich verwende Xcode, sollte ich nach einigen Einstellungen in Xcode suchen? –

+0

Ich würde die Befehlszeile verwenden und pipe/Redirect eine Datei mit Ihrer Eingabe durch Ihr Programm. – Galik

Antwort

0

Es gibt keine festgelegte Größenbeschränkung für IO-Puffer, die ich in der Norm finden konnte, aber es für Ihren Betriebssystem Eingangspuffer sein kann.

Verwandte Themen