C语言想问一下导入函数load()里feof(fp)=0的含义以及return(i-1)为什么要返回i-1,在线等急急急
答案:3 悬赏:30
解决时间 2021-01-21 15:25
- 提问者网友:書生途
- 2021-01-21 09:14
C语言想问一下导入函数load()里feof(fp)=0的含义以及return(i-1)为什么要返回i-1,在线等急急急
最佳答案
- 二级知识专家网友:醉吻情书
- 2021-01-21 09:27
feof(fp)函数测试文件fp是否已经读到末尾,不是则返回0,是则返回非零。
}while(feof(fp)==0); 这句的意思是,如果文件没到末尾(feof(fp)返回0),继续做循环。
i-1的意思是,当fread(&stu[i],sizeof(struct student),1,fp);读到文件末尾,它会返回且不读取字节,但是下一句i++还是执行了,所以多算了一个字节,因此要减回来。追问哦哦,明白了,再多问一句,保存函数里的fopen函数用的是“wb”方式,但是load函数用的是“rb”为什么? 有什么区别吗
}while(feof(fp)==0); 这句的意思是,如果文件没到末尾(feof(fp)返回0),继续做循环。
i-1的意思是,当fread(&stu[i],sizeof(struct student),1,fp);读到文件末尾,它会返回且不读取字节,但是下一句i++还是执行了,所以多算了一个字节,因此要减回来。追问哦哦,明白了,再多问一句,保存函数里的fopen函数用的是“wb”方式,但是load函数用的是“rb”为什么? 有什么区别吗
全部回答
- 1楼网友:山君与见山
- 2021-01-21 11:11
feof函数是用来判断文件是否结束,结束值为非0,不结束值为0。return 返回的值要根据要求判断
- 2楼网友:春色三分
- 2021-01-21 10:10
feof(fp) 检查fp是否达到文件末尾,如果是则返回真,while条件应当写成while ( !feof(fp) );
返回i-1是没有道理的,是实际已读记录数减1
如果想避免遇到空记录文件,程序应当改写: while ( !feof(fp) ) { fread(...); i++; }追问这是个保存学生借书证信息的程序,M是学生人数,那return(i-1)就是错误语句了吗追答应该return i;
返回i-1是没有道理的,是实际已读记录数减1
如果想避免遇到空记录文件,程序应当改写: while ( !feof(fp) ) { fread(...); i++; }追问这是个保存学生借书证信息的程序,M是学生人数,那return(i-1)就是错误语句了吗追答应该return i;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯