【发布时间】:2019-11-14 07:14:33
【问题描述】:
我正在尝试从文件中读取数字并将它们放入二维数组中,但每行的第一个数字被放入前一行的最后一个数字的位置。
输出应如下所示:
11 14 12 07 1 8.7
11 14 11 58 143 8.6
11 14 13 03 163 8.9
11 13 18 06 1 7.3
但结果是这样的:
11 14 12 07 1 11
11 14 11 58 143 11
11 14 13 03 163 11
11 13 18 06 1 7.3
这是将值放入数组的循环:
double all_data[entry_counter-1][5];
int col_counter = 0;
int row_counter = 0;
for(int i=0; i<=entry_counter/6-1; i++) {
col_counter = 0;
for (int j = 0; j <= 5; j++) {
fscanf(input_file, "%lf\n", &v);
all_data[row_counter][col_counter] = v;
col_counter++;
}
row_counter++;
}
【问题讨论】:
-
没有minimal reproducible example,看起来像边界溢出场景。
-
该数组每行只能容纳 5 个项目,索引从 0 到 4。但是
j循环从 0 到 5 计数。顺便说一句,由于 @ 不需要单独的col_counter987654327@ 和col_counter始终具有相同的值。 -
您是不是要使用
<而不是<=? -
double all_data[entry_counter-1][6]