我试图从一个看起来像这样的文件中读取
1 1 756.00
1 2 996.45
1 3 5159.14
1 4 710.21
1 5 10.00
2 1 1449.00
2 2 416.10
2 3 3119.48
2 4 2130.63
2 5 0.00
3 2 810.30
3 3 2219.63
3 4 1151.03
3 5 0.00
4 1 1071.00
4 3 1319.78
4 4 1861.24
4 5 0.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);
但我很确定这甚至不是正确的方法。我只需要在正确的方向上至少提供一些指导。
答案 0 :(得分:1)
看起来第一个和第二个值是索引。如果是这样,那么这可能会有效。
while ( fgets(buffer, 100, fp)) {
if ( ( sscanf(buffer, "%d%d%lf", &i, &j, &value)) == 3) {
sales[i-1][j-1] =value;
}
}
答案 1 :(得分:1)
怎么样:
while(scanf("%d %d %lf", &r, &c, &v) != EOF)
sales[r-1][c-1] += v;