> バイナリ形式でdatファイルに出力し、
> 読み込み時はfreadで読み込んで
書き出すときfwriteを使って一度に書き出して、
freadで一度に読み込みさせようとすると
環境によってはうまくいかないことがあります。
#殆どの環境はうまくいきますが。
メンバひとつひとつに対して
書き込みを行ってやるなどの対処法があります。
まずは原因を絞り込む為に
例えば、
#include <stdio.h>
typedef struct hoge HOGE;
struct hoge{
int hoge;
int huga;
};
int main( void )
{
FILE *fp1, *fp2;
HOGE save = { 100, 200 };
HOGE load;
fp1 = fopen( "test.bin", "wb" );
if ( !fp1 ){return 1;}
fwrite((void*)&save, sizeof(save), 1, fp1 );
fclose( fp1 );
fp2 = fopen( "test.bin", "rb" );
if ( !fp2 ){return 1;}
fread((void*)&load, sizeof(load), 1 ,fp2 );
printf( "%d:%d\n", load.hoge, load.huga );
fclose( fp2 );
return 0;
}
見たいな簡単なTPを実行してもらうなどを
お願いしてみると良いかもしれません。
#もちろん使う構造体は落ちているプログラムの
#物と同じにする必要がありますが。