feof 作用:如果文件结束,则返回非0值,否则返回0 但要注意的是feof要读取到文件结束标志EOF后,才能判断文件是否结束. 所以使用while(!feof(pFile))会出现最后fread会返回0,改进后的代码如下: while(!feof(pFile)) { s32Ret = fread(&stStopInfo, , sizeof(CARD_MNG_STOP_INFO_S), pFile); if(feof(pFile)) { break; } assert(s32Ret == siz