★C语言 关于文件的一个小程序

以下程序用来统计文件中字符的个数(函数feof用以检查文件是否结束,结束时返回非零)#include<stdio.h>main(){FILE*fp;longnum=0;f... 以下程序用来统计文件中字符的个数(函数feof用以检查文件是否结束,结束时返回非零)
#include <stdio.h>
main() {
FILE *fp;
long num=0;
fp=fopen("fname.dat","r");
while( __________ ){
fgetc(fp); num++;}
printf("num=%d\n",num);
fclose( fp ); }
下面选项中,填入横线处不能得到正确结果的是
A)feof(fp)
B)feof(fp)==NULL
C)!feof(fp)
D)feof(fp)==0
答案选C。题目选不能得到正确结果的是,C和D感觉是一样的啊,这道题是不是应该选A?
展开
 我来答
松甜恬0Je4ba
2014-03-20 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3432万
展开全部
feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。

所以 A显然不对啊 如果文件没有结束 则 feof(fp) 为0 也就是为假 while循环根本不执行。

而且 c和d是一个意思!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xl533lx
2014-03-20 · 超过19用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:44.6万
展开全部
while语句是当。。。。。,所以D是当feof(fp)==0的时候,这时候还在读数据,所以继续,当读到文件尾的时候,feof(fp)=1了,这时候就不满足feof(fp) == 0,就停止读文件,所以D正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lsslddd
2014-03-20 · TA获得超过936个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:423万
展开全部
BCD就是一个意思(B的NULL这个宏如果是0的话) 只有A是错误的,你的看法是对的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式