我编了一个小程序,可为什么输出的是无限循环,求高手指点,以下是我的程序

#include<stdio.h>#include<stdlib.h>voidmain(){FILE*fp;doublea[20];inti=0;if((fp=fopen... #include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
double a[20];
int i=0;
if((fp=fopen("data1.txt","r"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
while(!feof(fp))
{
fscanf(fp,"%lf",&a[i]);
printf("a[%d]=%lf\n",i,a[i]);
i++;
}
fclose(fp);
}

这是为什么??

这是我的数据
展开
 我来答
笑引幽
2014-03-24 · TA获得超过393个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:161万
展开全部
feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。
EOF是文本文件结束的标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF的16进制代码为0x1A(十进制为26),因此可以用EOF作为文件结束标志。
所以说,当文件有内容时返回0,读取完毕返回非0
你写成
while(feof(fp)==0)
{

}
试试
更多追问追答
追问
改成while(feof(fp)==0)
{

}或者
while(feof(fp)!=EOF)
{

}
还是一样的结果
追答
换个数据文件不要有其他空格等多余符号,也许你的文件有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友95cc616
2014-03-24 · TA获得超过251个赞
知道小有建树答主
回答量:448
采纳率:100%
帮助的人:273万
展开全部
你的程序和数据文件在我的电脑上的VC6上正常工作,请检查你系统中的VC是否有问题
追问
我另外下一个看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式