if(fread(&s[i],sizeof(struct stu),1,fp)==1) 什么意思

if(fread(&s[i],sizeof(struct stu),1,fp)==1);
else
{
printf("读取文件出错");
fclose(fp);
exit(0);
}
fclose(fp);
return;
调试时出现读取文件错误时为什么

从文件指针fp读取一个size为sizeof(struct stu)的数据,存入s[i],if用来判断读取是否成功
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-01
里面的fread()是一个读文件操作的函数,希望你能看一下C的函数库,里面有很详细的介绍每个函数的用法,返回值等,这里的if()中的判断就是判断fread()函数有没有操作成功。追问

那操作没成功是什么原因?

追答

这个原因就有很多了,可能是内存满,传入参数错误,堆栈操作错误等,一般情况是不会有错误的,这里的判断就是为了程序的安全性考虑,推荐按照这样写,因为我遇到过类似传入参数的错误,这样就方便你对程序的调试,一下就能找出问题了

相似回答