错误:多读取一遍最后一行数据
while(!feof(fp))
{
fgets(databuf,1024,fp);
cout << databuf << endl;
}
原因:读取最后一行时feof(fp)没有置!0,下一次才会置!0
解决:做两次判断,先输出后读
fgets(databuf,1024,fp);
while(!feof(fp))
{
cout << databuf << endl;
fgets(databuf,1024,fp);
}
或者:
fseek(fp,0L,SEEK_END);
int size = ftell(fp);
读他的size。