dynamisches Feld in Datei - wo ist der Fehler
-
Dieser Beitrag wurde gelöscht!
-
Du solltest nicht einfach Sachen zusammenstückeln. Damit kommst du in C++ nicht weit.
Vor allem solltest du C++ Mitel nutzen. Sprich ofstream und Konsorten.
Hier habe ich das mal für ein 3 Dimensionales Array gemacht.
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1532488-and-highlight-is-.html#1532488Das sollte dir eigentlich helfen auch dein Problem zu lösen.
-
Hi,
sorry, aber merk dir erstmal folgendes:
1.int main(int argc, char *argv[]) //Standardisiert, das dritte Argument soll nicht auftreten, kriegst du immer noch über syscallAußerdem hat main eine int-returnvalue!
2. C++ -> fstream statt FILE !
3. Alles dynamische am besten mit STL (vector), Änderungen sind später immer noch möglich und fstream ist einfach leichter zu bedienen.
4. Mach bei for etc. Klammernfor(...){...}, das zeugt von guten Stil und verhindert bei manchen Compilern schwer reproduzierbare Fehler.
5. Gültigkeitsbereich von i und j
nur innerhalb der for-Schleifen, danach NEU deklarierenZum Test solltest du das ganze noch mit Zufallszahlen füllen.
Angewandt auf deinen Code sieht das dann so aus:#include <iostream> #include <stdio.h> #include <stdlib.h> #include <fstream> #include <vector> using namespace std; int main( int argc, char *argv[ ]) { int ROW; int COLUMN; cout << "Bitte gib die Zeilen an!" <<endl; cin >> ROW; cout << "Bitte gib die Spalten an!" <<endl; cin >> COLUMN; //Seed rng srand(time(0)); //Init ppArray vector< vector<int> > ppArray; //Spaltenfelder reservieren + initialisieren ppArray.resize(ROW); for (int i=0; i<ROW; i++) { ppArray[i].resize(COLUMN); for (int j=0; j<COLUMN; j++) { ppArray[i][j] = rand()%999; //Size down random number a bit } } fstream f("array.txt", fstream::out); for (int i=0; i<ROW; i++) { for (int j=0; j<COLUMN; j++) { f << ppArray[i][j] << " "; } f << endl; } f.close(); return 0; }Bei mir (x64-OpenSuSE, GCC 4) funktioniert das.
mfg, Hans
-
Vielen Dank euch beiden

-
Kein Problem

mfg, Hans:schland:
-
pharmacy;