我写了一个小程序从.au文件中获取魔术数字并将其打印到控制台,但是每次尝试时,我都会改为10,而不是获得预期的.snd
。从.au读取魔术数字文件
我不知道为什么会发生这种情况,考虑到我只读了4个字节,这就是幻数组成的部分。那么,额外角色从哪里来?
#include <stdio.H>
int main()
{
FILE *fin;
int r;
char m[4], path[20];
scanf("%s", path);
fin = fopen(path, "r");
r = fread(&m, sizeof(char), 4, fin);
printf("magic number is %s\n", m);
return 0;
}
你没有你的'M'阵列上的空终止,所以printf()函数将保持吐出字节,直到遇到一个。 –