Ich habe versucht, ein Array von 1.000.001
Element in C++
wie folgt zu initialisieren: int array[1000001]
. Ich habe 4 GB RAM, so vermutete ich, das Problem ist, dass mein Laptop ein so großes Array wegen seiner Größe 4 * 1000001 bytes
nicht halten kann. Also habe ich beschlossen, es zu char
zu machen (nur weil ich wissen wollte, ob meine Vermutung richtig war). Ich lese das Array aus einer Datei. Dies ist mein Code:seltsames Array Lesen von Datei in C++
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
int main()
{
fstream in("C:\\Users\\HP\\Documents\\Visual Studio 2017\\Projects\\inputFile.in");
if (!in)
{
cerr << "Can't open input file\n";
return 1;
}
fstream out("outputFile.out", fstream::out);
if (!out)
{
cerr << "Can't open output file\n";
return 1;
}
int n;
in >> n;
int i;
char array[100];
for (i = 0; i < n; i++)
in >> array[i];
in.close();
out.close();
}
Für die Eingabe:
5 45 5 4 3 12
mein Array ist {4, 5, 5, 4, 3}
.
Für die Eingabe: 5 12 3 4 5 45
mein Array ist {1, 2, 3, 4, 5}
Jetzt bin ich wirklich verwirrt. Warum passiert dies?
Warum lesen Sie Ganzzahlen in ein Char-Array? – NathanOliver