如何在C中将逗号分隔的数字从文件读入多维数组

时间:2013-01-30 16:23:01

标签: c fread fseek

我想编写一个函数,在一个文件中用逗号分隔的数字创建整数数组,如下所示:

         1,    54520.00000,    86397.00000,   0
         2,    54440.00000,    87200.00000,   0
         3,    51280.00000,    97600.00000,   0
         4,    50000.00000,   100000.00000,   0
         5,    48880.00000,   100000.00000,   0

第一列是每行的编号,因此我需要的数据实际上是接下来的三列 我的问题是:

  1. 由于我不知道数组的维度,我必须先读取最后一行的第一个数字。怎么做?我试图使用fseek将我的文件指针指向文件的末尾,然后找到前面的'\ n',但我不知道如何处理逗号。
  2. 获取行数后,如何将我需要的数据读入N_row * 3数组?如何处理逗号和'\ n'?
  3. 提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用fscanf()

将以下fscanf()用于循环,直至到达文件末尾:

int i,j
double x,y;
while (fscanf(fp, " %d , %f , %f , %d", &i, &x, &y, &j) != EOF) {....}