次のようなテキストファイルがあります。
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
整数の 2 次元配列を読み込みたい。問題は、ファイルが 2 次元データの次元に関する情報を提供していないことです。私は次のようにしてみました:
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++;
}
このコードは、行の最後のデータ項目の後の文字が改行の場合は正常に機能しますが、それ以外の場合は失敗します。データの次元を事前に知らなくても、ファイルから 2 次元データを読み取る信頼できる方法は何ですか?