抱歉,我是 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/