したがって、ファイルの最初の 3 バイトを読み取る非常に単純なプログラムがあります。
int main(void)
{
ファイル *fd = NULL;
int i;
符号なし文字テスト = 0;
fd = fopen("test.bmp", "r");
printf("位置: %ld\n", ftell(fd));
for (i=0; i<3; i++) {
fread(&test, sizeof (unsigned char), 1, fd);
printf("位置: %ld 文字:%X\n", ftell(fd), テスト);
}
リターン (0);
}
テキストファイルで試してみると、うまくいきます:
位置: 0 位置: 1 文字: 61 位置: 2 文字: 62 位置: 3 文字: 63
しかし、たとえばPNGで実行すると、次のようになります。
位置: 0 位置: 147 文字:89 位置: 148 文字:50 位置: 149 文字:4E
ファイルの最初の 3 バイトは確かに 89 50 4E ですが、147 がどこから来たのかわかりません。bmp ファイルを使用すると、次のようになります。
位置: 0 位置: -1 文字:42 位置: 0 文字:4D 位置: 1 文字:76
これらの最初の位置がどこから来たか知っていますか? 助けてくれてどうもありがとう