用c怎么把dat文件中的数据读取然后存到二维数组中?
有一个dat文件,里面有600行、720列的小数数据,长度不一,大概有6、7位,每个数据中间有空格,看起来就像个矩阵。请问怎么样用C或者C++把它读取到一个二维数组中,并...
有一个dat文件,里面有600行、720列的小数数据,长度不一,大概有6、7位,每个数据中间有空格,看起来就像个矩阵。请问怎么样用C或者C++把它读取到一个二维数组中,并且也是600行、720列的,成为可以取出来用的double数据,最好有源码和解释,谢谢你的回答,急需使用。
展开
1个回答
2013-09-19
展开全部
文件里的数据量太大,我用4行3列的数据来做示范:#include<stdio.h>
#include<stdlib.h>
int main ()
{
int i,j;
char name[30];
FILE *outfile;
double num[4][3];
printf("请输入文件名:");
gets(name);
if((outfile=fopen(name,"r"))==NULL)
{
printf("文件打开失败,可能文件名错误。\n");
exit(0);
}
printf("文件中的数据为:\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
num[i][j]=0;//防止文件数据没这么多时出错
fscanf(outfile,"%lf",&num[i][j]);
printf("%10.6f ",num[i][j]);
}
printf("\n");
}
fclose(outfile);
return 0;
} 文件内容为:运行结果为:
要改成600行,720列可以进行如下改动:将num[4][3]改为num[600][720]将:for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
num[i][j]=0;//可以防止文件里数据没这么多的时候造成出错
fscanf(outfile,"%lf",&num[i][j]);
printf("%10.6f ",num[i][j]);
}
printf("\n");
}中的for循环里的4、3分别改为600、720
#include<stdlib.h>
int main ()
{
int i,j;
char name[30];
FILE *outfile;
double num[4][3];
printf("请输入文件名:");
gets(name);
if((outfile=fopen(name,"r"))==NULL)
{
printf("文件打开失败,可能文件名错误。\n");
exit(0);
}
printf("文件中的数据为:\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
num[i][j]=0;//防止文件数据没这么多时出错
fscanf(outfile,"%lf",&num[i][j]);
printf("%10.6f ",num[i][j]);
}
printf("\n");
}
fclose(outfile);
return 0;
} 文件内容为:运行结果为:
要改成600行,720列可以进行如下改动:将num[4][3]改为num[600][720]将:for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
num[i][j]=0;//可以防止文件里数据没这么多的时候造成出错
fscanf(outfile,"%lf",&num[i][j]);
printf("%10.6f ",num[i][j]);
}
printf("\n");
}中的for循环里的4、3分别改为600、720
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询