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

         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

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


由于我不知道数组的维数,因此我必须先读取最后一行的第一个数字。怎么做?我尝试使用fseek将文件指针指向文件的末尾,然后找到前一个'\ n',但是我不知道如何处理逗号。
获得行数后,如何将所需的数据读入N_row * 3数组中?如何处理逗号和'\ n'?


感谢您的帮助!

最佳答案

您可以使用fscanf()

在循环中使用以下fscanf()直到到达文件末尾:

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

关于c - 如何将逗号分隔的数字从文件中读取为C中的多维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14608754/

10-11 23:16