标题:C语言从txt中读取数据并存入动态数组中
只看楼主
lebronze
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-5-25
结帖率:50%
 问题点数:0 回复次数:0 
C语言从txt中读取数据并存入动态数组中
txt中存储的是double类型的数值,按列排列(每行一个数值然后换行)。现在要实现从txt中读取数据并获取文件行数,然后以文件行数为大小创建动态数组,将数据依次写入这个动态数组中。以下是我的代码:
程序代码:
char path[4][50]={"E:/g(0).txt","E:/g(1).txt","E:/g(2).txt","E:/g(3).txt"};
FILE *f1;                    
double *data1;               //读入文件的动态数组
long size_f1=0;                //文件行数
int i;
int n=0;
int mid;
f1=fopen(path[0],"r+");

//获取文件行数,方便创建动态数组
if(f1!=NULL){
   while(!feof(f1))
     {   
           mid=fgetc(f1); //从txt文本中读取一个字符赋值给mid
           if(mid=='\n')  //如果这个字符为换行符
            n++;        //记录txt数据行数
      }
   
      size_f1=n+1;      //最后一行没有换行符,所以+1
      printf("txt行数为: %ld\n",size_f1);
      
      data1=(double*)malloc(sizeof(double)*size_f1); //创建动态数组
      for (i=0;i<size_f1;i++)
      {
          fscanf(f1,"%f", &data1[i]);  // 循环读(aaaaaaa)
          printf("%f\n",&data1[i]);
      }

另外我不是十分清楚C文件操作中的fscanf和fread,比如将aaaaaa处换成
fread(data1[i],sizeof(double),1,f1);
,结果都是不正确,老是内存错误
希望大神指点
搜索更多相关主题的帖子: double C语言 动态 
2016-05-25 16:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-465239-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.558212 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved