mehrdimensionales Array speichern
-
Hallo,
ich habe ein Array: bool Spielfeld[502][352];
Dieses möchte ich auf die festplatte speichern und laden können.
Ich habe es so probiert:
[code type="C++" tabs="4"] [
Speichern:
if (Fpinput =fopen("Test.txt", "w")) {
fwrite(Spielfeld, sizeof(Spielfeld), 1, Fpinput );
fclose(Fpinput);
}Laden:
if (Fpinput =fopen("Test.txt", "r")) {
while( !feof(Fpinput) )
{
fread(Spielfeld, sizeof(Spielfeld),sizeof(Spielfeld), Fpinput);
}
}
]
Doch das klappt nicht! Was muss ich also machen?
-
so wird das leider nicht klappen. am besten du durchläufst dein feld mit zwei schleifen und schreibst alles nacheinander in deine txt. nach jedem durchlauf der zweiten schleife fängst du eine neue zeile an ('\n').
das auslesen funktioniert dann ja in umgekehrter reihenfolge.
-
Ich habs sellbst geschafft. Es geht tatsächlich so:
Schreiben:FILE *Fpinput;
if (Fpinput=fopen("Test.txt", "w")) {
fwrite(Spielfeld, sizeof(Spielfeld),1 , Fpinput );
fclose(Fpinput);
}Lesen:
void laden (char *s) {
bool Spielfeld2[xgros][ygros];
FILE *Fpinput;
if (Fpinput =fopen(s, "r")) {
while( !feof(Fpinput) )
{
fread(Spielfeld2, sizeof(bool),sizeof(Spielfeld), Fpinput);
}
for (int i=0;i<xgros;i++) {
for (int j=0;j<ygros;j++) {
if (Spielfeld2[i][j]==true){Spielfeld[i][j]=Spielfeld2[i][j];}
}
}
}
fclose(Fpinput);
Generation=0;
}