C - 如何读取文本文件到2D数组的输入

时间:2016-11-10 08:49:16

标签: c arrays multidimensional-array input scanf

我试图将文本文件中的输入读取到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

0 个答案:

没有答案