末尾が任意のファイルタイプのファイルを読み取ろうとしており、その16進値からPNGファイルかどうかを判断しています。
これまでに2つの異なるパスを試しましたが、どれも機能していません。
- 最初の8つの16進値によって正しいヘッダーがあるかどうかが決まるため、最初に最初の16文字を読み取りました。それから私はそれを分離しようとします、そしてそれがここの他のスレッドで提示されたのと同じように16進値を読みます。
- もう1つは、最初の2つの値を読み取り、それが16進値であるかどうかを判断して、機能しているかどうかを確認したいだけです。そうではない。
コード:
int IS_PNG_FILE(char *name)
{
FILE *dat = fopen (name, "rt");
if (dat == NULL) return 1;
int data_point;
char buf[16], a[16];
fgets(buf, 16, dat);
printf("%s\n", buf);
int i, b;
for (i=0; i<16; i++)
{
sscanf(&buf[i], "%2x", &b);
a[i] = b;
i += 2;
}
printf("%d\n", a);
fscanf(dat, "%2x", &data_point);
printf("%d\n", data_point);
fclose(dat);
return 0;
}