【发布时间】:2013-11-18 02:41:57
【问题描述】:
抱歉,我对 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] 获得空值?
感谢您的帮助
【问题讨论】:
-
您可以逐行读取输入,并将其标记为数字。如果数字较少,则为其余元素分配虚拟值。
-
顺便说一句,第一行似乎指定了输入数据中的行数和列数。这就是您的代码使用它的方式(请参阅如何为
row和col分配值)。因此,您只需从for循环中的第二行开始阅读。 C 中的整数没有null值。