求助,从txt中读入列向量老是不正确
我想实现从txt中读入一列数据的功能,并写到矩阵data中。txt中数据是:
1.2
2.33
3.444
4.1111
5.23213123
但是我的代码执行出来结果是:
-6277436776947227700000000000000000000000000000000000000000000000000.000000
-6277436783004630300000000000000000000000000000000000000000000000000.000000
-6277436786500976200000000000000000000000000000000000000000000000000.000000
-6277436788420357300000000000000000000000000000000000000000000000000.000000
-6277436790179563400000000000000000000000000000000000000000000000000.000000
让我很苦恼啊,各位看看怎么回事。
程序代码:#include<stdio.h>
#include<stdlib.h>
double main()
{
char fpath[4][50]={"E:/aa.txt","E:/bb.txt","E:/cc.txt","E:/dd.txt"};
FILE *f1; //打开文件
long size_f1; //数据列数
double *data; //读入文件的动态数组
int i;
int n=0;
int mid;
f1=fopen(fpath[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);
rewind(f1); //指针归位
//开始读入文本
data=(double*)malloc(sizeof(double)*size_f1);
for (i=0;i<size_f1;i++)
{
fscanf(f1,"%f", &data[i]); // 循环读
printf("a=%f\n",data[i]);
}
fclose(f1);
}
free(data);
}另外,一般处理大量数据,使用二进制流还是文本流,有什么注意事项吗








