c - 将非偶数行的文本文件读入二维数组

标签 c arrays 2d

抱歉,我是 C 的新手,我遇到了困难。我有一个输入文本文件,上面写着:

5 3
383 386 287
415 293 335
368 492 149
421 362 27
190 59 263

我正在尝试将其读入二维数组。我正在尝试的是:

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;
    }
}

我遇到的问题是,在空白所在的第一行 (twod[0][2]) 上,它正在为其分配第二行 (383) 的第一个整数的值。我该怎么做才能使 [0][2] 获得空值?

感谢您的帮助

最佳答案

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

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");
}

关于c - 将非偶数行的文本文件读入二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819237/

相关文章:

将 char 数组复制到另一个 char 数组而不发生内存泄漏

jquery - 如何使用 JQuery 将 HTML 表单字段作为数组直接传递到 CodeIgniter 中的数据库

2d - 是否有可以模拟流体和气体的二维物理引擎?

java - OpenGL 的理想显示同步速率

c - 当字符串匹配时循环不会终止

我可以改编一个写入磁盘的函数来写入内存吗

c - 在 doxygen 中记录 C 类型定义

c - 链表中不兼容指针类型的赋值 (C)

java - 如何使用 jsoup 解析没有 Id 标记的表。

c++ - 查找一定范围内的网格单元