问题大概是这样的,用fread读取文件的时候,读取到的长度很小,并没有到预期值。
原因是打开文件的时候用"r"模式,应该成"rb"模式。
代码示例如下
#include <stdio.h>
int main()
{
unsigned char buff[201];
int i;
FILE *fp;
char filename[10];
int len;
for(i=144;i<146;i++)
{
sprintf(filename, "%d",i);
//这里是重点,因为我原来是"r"模式,导致碰到字符0x1a的时候,就认为到了EOF了,所以读不全,改为rb就可以了
fp=fopen(filename, "rb");
len=fread(buff, sizeof(unsigned char), 200, fp);
printf("fread [%d] len [%d]\n", i, len);
fclose(fp);
fp=NULL;
}
return 0;
}