将非偶数行的文本文件读入2D数组

Los*_*ace 5 c arrays 2d

对不起,我是C的新手,我很难过.我有一个输入文本文件,其中包含:

5 3
383 386 287
415 293 335
368 492 149
421 362 27
190 59 263
Run Code Online (Sandbox Code Playgroud)

我试图将其读入2D数组.我在想的是这个:

FILE * fin = NULL;
fin = fopen("myTestData.txt", "r");
int twod[MAX_ROWS][MAX_COLS];

int i, j, num, row, col;
fscanf(fin, "%d%d", &row, &col);

fclose(fin);

fin = fopen("myTestData.txt", "r");
for(i = 0; i < row; i++)
{
    for(j = 0; j < col; j++)
    {
        fscanf(fin, "%i ", &num);
    twod[i][j] = num;
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是在空白的第一行(twod [0] [2])上,它为第二行(383)的第一个整数赋值.我能做什么才能使[0] [2]获得空值?

谢谢你的帮助

Abd*_*ahC 1

删除关闭文件的行并重新打开文件。读入行数和列数后,您只需处理剩余的数据,这些数据将得到良好的结构化 - 就像大多数家庭作业问题一样。

FILE * fin = NULL;
fin = fopen("myTestData.txt", "r");
int twod[MAX_ROWS][MAX_COLS];

int i, j, num, row, col;
fscanf(fin, "%d%d", &row, &col);

//fclose(fin);

//fin = fopen("myTestData.txt", "r");
for(i = 0; i < row; i++)
{
    for(j = 0; j < col; j++)
    {
        fscanf(fin, "%i ", &num);
        twod[i][j] = num;
    }
}

for (i = 0; i < row; i++)
{
    for (j = 0; j < col; j++)
        printf("%d ", twod[i][j]);
    printf("\n");
}
Run Code Online (Sandbox Code Playgroud)