Hi! Ich habe folgendes Problem: Ich versuche eine Reihe von Zahlen aus einer TXT-Datei einzulesen und in ein "int field[256][320]" - Array zu schreiben. Dabei soll immer eine Zahl in einen neuen Teil des Arrays. Die Datei hat 256 Spalten und 320 Reihen von Zahlen.
dann zeig mal den Quellcode, und erkläre, wo das Problem liegt, dann wird Dir auch weiter geholfen. Ansonsten gibt es zu Fragen, die dieser sehr ähnlich sind schon Antworten hier im Forum. Einfach mal die Suchfunktion benutzen.
int main() { /** * Werte aus der Datei "datei" via Streamiterator auf Filestream in * ein Array mit den Dimensionen 5x3 einlesen */ fstream fs("datei"); istream_iterator<int> ii(fs); istream_iterator<int> eos;
int v[5][3]; copy(ii, eos, &v[0][0]);
/** * Eingelesene Werte aus dem Array auf die Standardausgabe schreiben */ ostream_iterator<int> oi(cout, "\n"); copy(&v[0][0], &v[4][3], oi); // index i = n-1
Sowas bitte nie machen. Speicherüberlauf ist da vorprogrammiert.
Warum? Bei der deklaration des Arrays wird der nötige speicher allokiert. Meinst du vlt. das wenn mehrere Dateien von dem Stream gelesen werden über den Speicher hinaus geschrieben wird? Wenn ja: "Die Datei hat 256 Spalten und 320 Reihen von Zahlen." Ich würde auch einen der STL-Container vorziehen.
Bei der deklaration des Arrays wird der nötige speicher allokiert.
Eben nicht. Du weißt gar nicht, wie viel Speicher benötigt wird, da du nicht weißt, wie groß die Datei wirklich ist. -- Wer früher stirbt ist länger tot.
bitte genauer lesen! in der aller ersten post wird schon gesagt das die datei genau 256 Spalten und 320 Reihen von Zahlen enthällt.
bitte auch meinen letzten post beachten in dem ich genau das geschrieben hab!
Auch soll nicht der Eindruck entstehen, das ich die Variante mit dem Array vorziehe; es wird jedoch in "Aufgabenstellung" gesagt, das die Daten in ein Array geschrieben werden sollen.