回答編集履歴
2
修正
answer
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
データが、`1.33,2.44,...`という形式なので、
|
1
|
+
データが、`1.33 , 2.44 , ...`という形式なので、
|
2
|
-
`fscanf(fp, "%lf", &data[i][j]);`で読み取ると一つ目を読んだ後に、先頭には`,`が残ります。
|
2
|
+
`fscanf(fp, "%lf", &data[i][j]);`で読み取ると一つ目を読んだ後に、先頭には` ,`が残ります。
|
3
|
-
次のfscanfでは、実数を読もうとして`,`が来るのでエラーとなり、それ以降は何度読んでも、
|
3
|
+
次のfscanfでは、実数を読もうとして` ,`が来るのでエラーとなり、それ以降は何度読んでも、
|
4
|
-
全てエラーになります。
|
4
|
+
先頭が` ,`なので全てエラーになります。
|
5
|
+
(型が合わずに読み取れなかった場合、そのデータはそのままストリームに残ります)
|
5
6
|
|
6
|
-
スペースが絡む,を
|
7
|
+
スペースが絡む`,`を無視するには、
|
7
8
|
`fscanf(fp, "%lf%*[ ,]", &data[i][j]);`
|
8
|
-
とかで。
|
9
|
+
とかで余分なものを読み飛ばしてください。
|
1
追加
answer
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
データが、`1.33,2.44,...`という形式なので、
|
2
2
|
`fscanf(fp, "%lf", &data[i][j]);`で読み取ると一つ目を読んだ後に、先頭には`,`が残ります。
|
3
3
|
次のfscanfでは、実数を読もうとして`,`が来るのでエラーとなり、それ以降は何度読んでも、`,`なので
|
4
|
-
全てエラーになります。
|
4
|
+
全てエラーになります。
|
5
|
+
|
6
|
+
スペースが絡む,を読み飛ばすには、
|
7
|
+
`fscanf(fp, "%lf%*[ ,]", &data[i][j]);`
|
8
|
+
とかで。
|