我有一个文本文件如下:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
我想读入一个二维整数数组。问题是该文件没有提供有关二维数据维度的信息。我试着这样做:
FILE *input_file = fopen(argv[1], "r");
while (! feof(input_file)) {
read = fscanf(input_file, "%d%c", &x, &del);
if (read != 2) {
i--;
break;
}
in_data[i][j] = x;
if ( del == '\n') {
i++;
j =0;
continue;
}
j++;
}
如果一行中最后一个数据项之后的字符是换行符,则此代码可以正常工作,否则会失败。在事先不知道数据尺寸的情况下从文件中读取二维数据的可靠方法是什么?