質問するログイン新規登録

回答編集履歴

2

修正

2020/07/29 14:04

投稿

amiya
amiya

スコア1218

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

追加

2020/07/29 14:04

投稿

amiya
amiya

スコア1218

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
+ とかで。