我正在尝试读取具有任何文件类型结尾的文件,并根据它的十六进制值确定它是否是 PNG 文件。
到目前为止,我已经尝试了两条不同的路径,但都没有奏效。
- 首先,我读取前 16 个字符,因为前 8 个十六进制值确定它是否具有正确的标题。然后我尝试将它分开并读取它与此处其他线程中显示的十六进制值一样。
- 另一个我只想读取前两个值并确定它是否是十六进制值,甚至看看它是否工作。它不是。
代码:
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;
}