我试图将文本文件中的输入读取到2D数组。每个数字应该是2D数组中的不同元素。我不知道我在这里使用fscanf()是否错误,但2D数组中的值是错误的。
示例文字文件:
623
151
111
最小代码示例:
#include <stdio.h>
void load_map()
{
FILE *input;
int MAXCOLS = 3;
int MAXROWS = 3;
int M[MAXROWS][MAXCOLS];
input = fopen("test.txt", "r");
for(int row = 0; row < MAXROWS; row++ )
{
for(int col = 0; col < MAXCOLS; col++ )
{
int count = fscanf( input, "%d", &M[row][col] );
printf("row: %i, col: %i == %i\n", row, col, M[row][col]);
}
}
}
int main()
{
load_map();
return 0;
}
输出:
row: 0, col: 0 == 623
row: 0, col: 1 == 151
row: 0, col: 2 == 111
row: 1, col: 0 == 0
row: 1, col: 1 == 1
row: 1, col: 2 == 0
row: 2, col: 0 == 4196253
row: 2, col: 1 == 0
row: 2, col: 2 == 0
所以似乎fscanf()读取整行,我怎样才能将数字单独读取到2D数组?
我想要的是:
row: 0, col: 0 == 6
row: 0, col: 1 == 2
row: 0, col: 2 == 3
row: 1, col: 0 == 1
row: 1, col: 1 == 5
row: 1, col: 2 == 1
row: 2, col: 0 == 1
row: 2, col: 1 == 1
row: 2, col: 2 == 1