fwrite und fopen
-
So, schon wieder ein problem.
diesmal will ich ein dreidimensionales feld in eine datei speichern und dann wieder auslesen. geht aber irgendwie nicht. hier mal mein code:char memory[100][10][50]; FILE *fp; int x, y; //eingabetext if (fp = fopen("files.dat","w+") { for (x=0;x<100;x++) { for (y=0;y<10;y++) { fwrite(memory[x][y],sizeof(memory),strlen(memory[x][y]),fp); } } } fclose(fp); /*und genau dasselbe mit fread(...)*/
woran kann das nun liegen, dass ich nach fread nix in memory[][][] drinstehen hab???
[ Dieser Beitrag wurde am 10.10.2002 um 17:13 Uhr von Dingeling editiert. ]
-
hi
beim ersten blick drüber finde ich hier ein semikolon
if (fp = fopen("files.dat","w+"); <-
das echt falsch da rumfliegt..
-
nene, das hab ich einfach nur falsch abgetippt
-
Original erstellt von Dingeling:
**So, schon wieder ein problem.
diesmal will ich ein dreidimensionales feld in eine datei speichern und dann wieder auslesen. geht aber irgendwie nicht. hier mal mein code:char memory[100][10][50]; FILE *fp; int x, y; //eingabetext if (fp = fopen("files.dat","w+"); { for (x=0;x<100;x++) { for (y=0;y<10;y++) { fwrite(memory[x][y],sizeof(memory),strlen(memory[x][y]),fp);
**
hmm... irgendwas stimmt hier nicht. Du sagst: Jedes Element ist sizeof(memory) gross (bei mir wäre das 4), und Du willst strlen(memory[x][y]) Elemente schreiben. Ich würde an der Stelle eh besser mit fputs arbeiten (dran denken, dass Du noch selber ein Trennzeichen schreiben musst!)
**```cpp
}
}
}
fclose(fp);
/und genau dasselbe mit fread(...)/Und hier liegt das Problem: wie sollen wir einen Fehler beim Einlesen finden, wenn Du nicht den Code zeigst?
-
hä, was. steh ich auf'm schlauch oder du??
was brauchste denn für ein code?aber egal, mit fputs gehts wirklich ein bisschen besser