### 実現したいこと
最近自作ゲーム用のマップエディタをc言語とDXLIBで作っているのですが、
肝心のファイルのセーブとロードの(つまり、読み書き)をバイナリファイルでしたいです。
発生している問題・分からないこと
fwriteやfreadで2次元配列を固定長で読み書きしているつもりなのにマップエディタの
マップに反映されないのは何故なのか分からないです。
しかし、マップデータをバイナリエディタを見てみると、03C0までデータは00で
埋められています。
該当のソースコード
c
1char MapData[32][30]={0}; 2...飛ばします 3if(Saveボタンをクリックしたら){ 4 FILE *fp; 5 fp=fopen("DQmodoki.bin","wb"); 6 if(fp==NULL) return -1; 7 fwrite(MapData,sizeof(MapData),1,fp); 8 fclose(fp); 9} 10if(Loadボタンをクリックしたら){ 11 FILE *fp; 12 fp=fopen("DQmodoki.bin","rb"); 13 if(fp==NULL) return -1; 14 fread(MapData,sizeof(MapData),1,fp); 15 fclose(fp); 16}
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
2次元配列を一次元配列にしたら、何故か、縦一列が書きこまれたり、
ポインタのポインタにしたら、突然終了したりしました。
もしくは、ネットで調べたら下記の書き込みが良いそうでしたがうまく行きませんでした。
char MapData[1024][32];
FILE *fp;fp=fopen("DQmodoki.bin","wb");if(fp==NULL)return -1;
for(int i=0;i<1024;i++)
{
fwrite(MapData[i],sizeof(char),32,fp);
}
補足
特になし
回答4件
あなたの回答
tips
プレビュー