#include <stdio.h>
int main()
{
int i,j;
FILE *f;
f=fopen("./pathto/sth.bmp","rb");
fread(&i,1, 1, f);
printf("%d ",i);
fread(&j,1, 1, f);
printf("%d ",j);
return 0;
}
bmpファイルから最初の2つの値を読みたいと思います。私は彼らが66歳と77歳であることを知っています。問題は、もし私が最初の値だけを読むと、変数 "i"は66になります。しかし、もし私が第2の値を "j"として読むと、 "j"は77になり、 "i"は196540のようなランダムな値をとります。だから、もし私が最初の値を読んだら、大丈夫です。私は最初の2つの値を読み取る場合は、最後の値は良いですが、最初の修正は、それがバイナリファイルの問題から読む
なぜ、 'byte'サイズの値を読み込んでいるときに' int'変数を使用していますか?使用しているプラットフォーム上の 'sizeof(int)'とは何ですか? –
私は 'fread(sig、sizeof(sig)、1、f) 'を介して' unsigned char sig [2] 'を読むことがあなたが望むように近いと思うでしょうが、おそらくあなたは[ヘッダー全体](https://en.wikipedia.org/wiki/BMP_file_format#Bitmap_file_header) – WhozCraig
インクルードは 'fopenの呼び出しから返された値(ないパラメータの値をチェックする必要があります()'と 'のfread()'オペレーション(複数可)を保証するために成功した。 – user3629249