したがって、ファイルの最初の 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
これらの最初の位置がどこから来たか知っていますか? 助けてくれてどうもありがとう