C语言如何读取按行排列的数据

prince2000 2008-07-06 03:33:44
假设有一个txt文本格式的数据文件,里面按行排列了5个数字如下:
-0.12666155883816
0.11793779335741
-0.10944460818661
0.10019887275054
-0.09284829505570


我想用fread函数将此5个数据依次读出,并放在一个double数组A里面,怎么实现?
同理若得到了一个数组各个元素的值,怎么把他输入到一个txt文件里面?

请前辈指教
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
prince2000 2008-07-06
  • 打赏
  • 举报
回复
我是想把一个txt文件里面的数据(每一行只有一个实数)读出来,然后把每个值赋给一个数组的元素。
-0.12666155883816
0.11793779335741
-0.10944460818661
0.10019887275054
-0.09284829505570
若文件为以上5个数,则读出应该为
a[0]= -0.12666155883816
a[1]=0.11793779335741
a[2]=-0.10944460818661
a[3]0.10019887275054
a[4]-0.09284829505570
K行天下 2008-07-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 prince2000 的帖子:]
假设有一个txt文本格式的数据文件,里面按行排列了5个数字如下:
-0.12666155883816
0.11793779335741
-0.10944460818661
0.10019887275054
-0.09284829505570


我想用fread函数将此5个数据依次读出,并放在一个double数组A里面,怎么实现?
同理若得到了一个数组各个元素的值,怎么把他输入到一个txt文件里面?

请前辈指教
[/Quote]
不能用fread, fread一般处理二进制文件读入

这样做:

/*
-0.12666155883816
0.11793779335741
-0.10944460818661
0.10019887275054
-0.09284829505570
*/
#include <stdio.h>
int main()
{
FILE* fp = fopen("1.txt","r");
double f;
//fread(f, 20, 1, fp);// 你不知道读多长,也不能读到double数据,存储格式根本不一样, 文件中是字符串,字符文本,double是什么?想想
while(fscanf(fp, "%lf\n",&f)==1)
printf("%14.14f\n",f);
}
LPF2015 2008-07-06
  • 打赏
  • 举报
回复
可以用fscanf()fprintf()
wuyu637 2008-07-06
  • 打赏
  • 举报
回复
getline();

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧