c语言中读取txt中的数据给数组

写了如下程序#include<stdio.h>#include<math.h>voidmain(){inti;doubleA[7];{FILE*fp;if((fp=fop... 写了如下程序
# include <stdio.h>
# include <math.h>
void main()
{
int i;
double A[7];
{
FILE *fp;
if((fp=fopen("C:\Documents and Settings\Administrator\桌面\input.txt","r"))== NULL)
{
printf("cannot open this file\n");
exit(0);
}
for(i=0;i<7;i++) fscanf(fp,"%f",&A[i]);
fclose(fp);
}
}
想把文件input中的数据依次赋给A[i],但是运行发现不行,A[i]的值始终还是等于0
intput中数据如下
0.48
0.95
2.46
0.95
2.5
0.05
0
3个都试了,不行啊!
# include <stdio.h>
# include <math.h>
void main()
{
int i;
double A[7];
{
FILE *fp;
if((fp=fopen("C:\Documents and Settings\Administrator\桌面\input.txt","r"))== NULL)
{
printf("cannot open this file\n");
exit(0);
}
for(i=0;i<7;i++) fscanf(fp,"%lf",A[i]);
printf("%f",A[0]);
fclose(fp);
}
}
在后面加了如下语句printf("%lf",A[2]);用于检测 结果
输出结果还是0.000000
三楼的仁兄,我改过来了运行也是0啊
再次运行结果是0.0000000.0000000.0000000.000000-3.92...................我用的是Turbo C For Windows3.0

楼下大虾 如果是if((fp=fopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r"))== NULL)不能打开文件
但是if((fp=fopen("C:\\\input.txt","r"))== NULL)就可以了 当然我在桌面和磁盘C:\\Documents and Settings\\Administrator\\桌面\\input.txt和C:\\\input.txt都建了input.txt
能顺便帮忙解决下吗
谁有能用的程序也请不要藏着哦!在线等!谢谢各位大虾啊
展开
 我来答
匿名用户
推荐于2016-09-29
展开全部
fscanf(fp,"%f",&A[i]);
改为:
fscanf(fp,"%lf",&A[i]);

printf("%f",A[0]);
改为
printf("%lf",A[0]);
****************************************
一个测试通过的程序:

//---------------------------------------------------------------------------

# include <stdio.h>
# include <math.h>
void main()
{
int i;
double A[7];
{
FILE *fp;
if((fp=fopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r"))== NULL)/*特别注意这里,一定要用双斜杠*/
{
printf("cannot open this file\n");
exit(0);
}
for(i=0;i<7;i++) fscanf(fp,"%lf",&A[i]);/*注意这里*/
printf("%lf",A[0]);/*注意这里*/
fclose(fp);
}
}
//---------------------------------------------------------------------------

***********************************************

TC不支持中文目录,建议用其它编译器,如果不更换编译器,请将input.txt文件保存到一个无空格的英文目录下
百度网友23cf893
2008-05-05 · TA获得超过381个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:259万
展开全部
你用的是double所以读入时要lf
fscanf(fp,"%lf",&A[i]);
你输出也要改的呀
printf("%lf",A[0]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qdechochen
2008-05-05 · TA获得超过114个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:242万
展开全部
fscanf(fp,"%f",&A[i]);
?????
&A[i]改成A[i]试试.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式