私はCでこのようなバイナリファイルを定義しました
FILE *gfp;
gfp = fopen(gridfiles, "wb");
変数gridfilesはファイルの名前を格納し、以前に定義されています。次に、2つの変数をファイルに書き込みます。
for(yy = 0; yy < nfiley; yy++) {
for(xx = 0; xx < nfilex; xx++) {
filebx = beguv + xx*1E3;
fileby = enduv - yy*1E3;
fwrite(&filebx, sizeof(filebx), 1, gfp);
fwrite(&fileby, sizeof(fileby), 1, gfp);
}
}
このコードの直後の場合私は
fseek(gfp, 0, SEEK_SET);
fread(&filebx, sizeof(filebx), 1, gfp);
fread(&fileby, sizeof(fileby), 1, gfp);
fprintf(stderr, "%f %f", filebx, fileby);
私の出力は
1000 15000
最初の2つは、予想どおりです。
しかし、他のさまざまなコード(これらのファイルをまったく含まない)の後で、fseek()などを繰り返すと、出力は次のようになります。
14000 14000
私が何をするかに関係なく。私はしばらくの間これを理解しようとしてきました...誰かが私が間違っていることを知っていますか?