将值从文件读取到非对应的数组中

时间:2015-02-04 17:10:17

标签: c arrays

我正在用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。我不知道该怎么做,到目前为止我还没有找到解决办法。

1 个答案:

答案 0 :(得分:0)

该行

fscanf(file,"%lf",&array[a][b])

导致未定义的行为,因为您尚未初始化file

尝试更改行:

   if (fopen(myfile,"r")==NULL)

   if ((file = fopen(myfile,"r")) ==NULL)

另外,请发布可编辑的代码。你错过了;几行。