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);,结果都是不正确,老是内存错误
希望大神指点