我正在用c编写代码。我目前用于将文件中的值读取到数组中的方法是:
#include <stdio.h>
#include <float.h>
int main(int argc, const char * argv[])
{
int a,b;
double array[3][3];
FILE *file;
char *myfile=malloc(sizeof(char)*80);
sprintf(myfile,"example.txt");
if (fopen(myfile,"r")==NULL)
{
}
else
{
file=fopen(myfile,"r");
for (a=0;a<3;a++)
{
for (b=0;b<3;b++)
{
fscanf(file,"%lf",&array[a][b]);
}
}fclose(file);
}
}
如果我有一个值为
的文件1 2 3
4 5 6
7 8 9
此代码将每个值一次读入数组。这适用于我的大部分目的。但是,我想要编写新代码或修改它以仅读取某些值。例如,我只想将文件中的数字3 6 9
读入array[3][1]
,其中第一行为3,第二行为6,第三行为9。我不知道该怎么做,到目前为止我还没有找到解决办法。
答案 0 :(得分:0)
该行
fscanf(file,"%lf",&array[a][b])
导致未定义的行为,因为您尚未初始化file
。
尝试更改行:
if (fopen(myfile,"r")==NULL)
到
if ((file = fopen(myfile,"r")) ==NULL)
另外,请发布可编辑的代码。你错过了;
几行。