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

