回答編集履歴

2

修正

2020/07/29 14:04

投稿

amiya
amiya

スコア1218

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

1

追加

2020/07/29 14:04

投稿

amiya
amiya

スコア1218

test CHANGED
@@ -5,3 +5,11 @@
5
5
  次のfscanfでは、実数を読もうとして`,`が来るのでエラーとなり、それ以降は何度読んでも、`,`なので
6
6
 
7
7
  全てエラーになります。
8
+
9
+
10
+
11
+ スペースが絡む,を読み飛ばすには、
12
+
13
+ `fscanf(fp, "%lf%*[ ,]", &data[i][j]);`
14
+
15
+ とかで。