feof陷阱,因为在到文件末尾还要再读一次feof才会判断到末尾,所以我们用fgetc或者getc读二进制文件时,通过feof判断会多读一个字节,我们可以用fread代替解决
FILE *fp = fopen("文件路径","rb");
int readsize =20;
char *data = (char *)malloc(readsize);
int realreadsize;
while(1){
// 从fp指向的文件读readsize个字节到data指向的空间
realreadsize = fread(data, 1 readsize,fp);
if (realreadsize!=readsize)
{
// 这样realreadsize就是实际读的字节数了,也不会多读一个字节
// 如果实际读的字节数没达到20个字节,则说明已经到文件尾,则跳出循环
break;
}
}
fclose(fp);