从文件中读取数字以存储在C语言中的二维数组中

从文件中读取数字以存储在C语言中的二维数组中,c,C,我正试图从一个类似这样的文件中读取 1756.00 12996.45 135159.14 14710.21 1 5 10.00 211449.00 2416.10 23119.48 242130.63 2.50.00 32810.30 3 2219.63 3 4 1151.03 3.50.00 411071.00 431319.78 4 1861.24 4.50.00 然后将数字存储到二维数组中。然而,该文件也有大约478行。这是因为我应该一直存储当前值,加上每次迭代时读取的值。我一点也不知道该

我正试图从一个类似这样的文件中读取

1756.00
12996.45
135159.14
14710.21
1 5 10.00
211449.00
2416.10
23119.48
242130.63
2.50.00
32810.30
3 2219.63
3 4 1151.03
3.50.00
411071.00
431319.78
4 1861.24
4.50.00

然后将数字存储到二维数组中。然而,该文件也有大约478行。这是因为我应该一直存储当前值,加上每次迭代时读取的值。我一点也不知道该怎么做。我试过这么做

 while(!feof(fp)) 
 {
    for(i = 0; i < 4; i++) 
    {
       fgets(buffer, 100, fp);
       sscanf(buffer, "%d", &i);

       for(j = 0; j < 5; j++) 
       {
           fgets(buffer, 100, fp);
           sscanf(buffer, "%d", &j);

           for(k = 0.0; k != ' '; k++) 
           {
               fgets(buffer, 100, fp);
               sscanf(buffer, "%lf", &value);
               sales[i-1][j-1] +=value;
           }
       }
    }
 }

fclose(fp);
while(!feof(fp))
{
对于(i=0;i<4;i++)
{
fgets(缓冲区,100,fp);
sscanf(缓冲区、%d、&i);
对于(j=0;j<5;j++)
{
fgets(缓冲区,100,fp);
sscanf(缓冲区、%d、&j);
对于(k=0.0;k!='';k++)
{
fgets(缓冲区,100,fp);
sscanf(缓冲区、%lf、&value);
销售额[i-1][j-1]+=价值;
}
}
}
}
fclose(fp);

但我很确定这不是正确的方法。我只需要在正确的方向上提供一些指导。

看起来第一个和第二个值就是索引。如果是这样的话,这可能会奏效

while ( fgets(buffer, 100, fp)) {
    if ( ( sscanf(buffer, "%d%d%lf", &i, &j, &value)) == 3) {
        sales[i-1][j-1] =value;
    }
}
那么:

while(scanf("%d %d %lf", &r, &c, &v) != EOF)
    sales[r-1][c-1] += v;

首先,销售[i-1][j-1]肯定是个错误吗?请澄清所有这些数字的去向。目前,您正在阅读整行代码,并且只解析每行代码的第一个数字。(我也不知道
k
循环应该做什么…)使用
sales[I-1][j-1]
是不好的,因为当
I==0
j==0
时,它将超出范围。因为我只有两个维度,我不知道如何处理行中的第三个数字(应该存储到值中)所以我创建了
k
。我也不知道如何解析下一个数字。这些数字应该存储在sales[第一行数字][第二行数字]=第三行数字
中,这看起来更像是
struct
s数组的问题。不要用锤子钻孔。你能详细说明这是如何回答这个问题的吗?