C言語でファイル読み込みの方法
入力される値
2
2 5
3 4
期待する出力
hello = 2 , world = 5
hello = 3 , world = 4
の場合のコードは、
#include <stdio.h>
int main(void){
int i, n;
char buf[1000];
char token1[100], token2[100];
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%d\n", &n);
for (i=0; i<n; i++) {
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%s %s\n", token1, token2);
printf("hello = %s , world = %s\n" ,token1 ,token2);
}
return 0;
}
このように、決まったフォーマットのデータを読み込む際はsscanfとfgetsを組み合わせると、上手くいきますが、
入力されるフォーマットが以下のように不規則の場合、sscanfとfgetsを組み合わせてファイルを読み込むことはできるのでしょうか?(全てint型)
入力フォーマット
M N
c_1
c_2
...
c_M
a_{1,1} a_{1,2} ... a_{1,M}
a_{2,1} a_{2,2} ... a_{2,M}
...
a_{N,1} a_{N,2} ... a_{N,M}
入力例1
3 3
250
500
1000
100 200 300
30 250 0
1 1 1000
入力例2
5 1
123
456
789
111
220
10 10 10 10 10