質問編集履歴
1
書式改善、質問文補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,9 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
+
```
|
8
|
+
|
7
|
-
score.txtの内容
|
9
|
+
<score.txtの内容>
|
8
10
|
|
9
11
|
James,1000
|
10
12
|
|
@@ -14,9 +16,11 @@
|
|
14
16
|
|
15
17
|
Bob,900
|
16
18
|
|
19
|
+
```
|
17
20
|
|
21
|
+
```
|
18
22
|
|
19
|
-
実行結果
|
23
|
+
<実行結果>
|
20
24
|
|
21
25
|
プレイヤー 得点
|
22
26
|
|
@@ -32,7 +36,11 @@
|
|
32
36
|
|
33
37
|
--------------------
|
34
38
|
|
39
|
+
最高得点:Steve(2800点)
|
40
|
+
|
35
|
-
|
41
|
+
``` 」(問題文ここまで)
|
42
|
+
|
43
|
+
|
36
44
|
|
37
45
|
|
38
46
|
|
@@ -40,7 +48,9 @@
|
|
40
48
|
|
41
49
|
|
42
50
|
|
51
|
+
|
52
|
+
|
43
|
-
#include<stdio.h>
|
53
|
+
```#include<stdio.h>
|
44
54
|
|
45
55
|
#include<stdlib.h>
|
46
56
|
|
@@ -80,7 +90,7 @@
|
|
80
90
|
|
81
91
|
printf("プレイヤー得点\n--------------\n");
|
82
92
|
|
83
|
-
while (fgets(line, size, file) != NULL)
|
93
|
+
while (fgets(line, size, file) != NULL){
|
84
94
|
|
85
95
|
sscanf(line,"%[^,],%d,%[^\r\n,],%d,%[^\r\n,],%d,%[^\r\n,],%d",str1,&n1,str2,&n2,str3,&n3,str4,&n4);
|
86
96
|
|
@@ -140,8 +150,22 @@
|
|
140
150
|
|
141
151
|
}
|
142
152
|
|
153
|
+
```
|
154
|
+
|
143
155
|
|
144
156
|
|
145
157
|
score.txtの内容が「James,1000,Tom,1200,Steve,2800,Bob,900」ならば望み通りの実行結果が得られましたが、問題文の通りのscore.txtの内容だと上手く行きません。
|
146
158
|
|
147
|
-
fgets()は文字列読み込みの際に\nがあればそこで読み込みを止めるというのは知っているのですが、sscanf()でコンマを飛ばしつつ改行飛び越して4行の文字列と数字を読み込む方法が分かりません。どうか教えて下されば幸いです。
|
159
|
+
fgets()は文字列読み込みの際に\nがあればそこで読み込みを止めるというのは知っているのですが、sscanf()でコンマを飛ばしつつ改行飛び越して4行の文字列と数字を読み込む方法が分かりません。fgetどうか教えて下されば幸いです。
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
<追伸>
|
166
|
+
|
167
|
+
fgets()がファイルの最後にNULLが出てくるまでファイル全て読み込ませる意図でwhile文を書きました。ただfgets()は1行ごとにしか読み込めず、1行目読み込んだ後lineに1行目の文字列が格納されるが、それで2行目読み込んだ後lineに1行目の文字列が消された上で2行目の文字列が格納されるのだと思います(ここら辺の細かい仕組みについてはまだあまり理解できていません)。4行目まで読み込んだ後は4行目の文字列しか格納されてないのでしょう(実行時、最高得点の所は表示されたが「最高得点:Bob (900点)」と表示されていた)。fgets()に改行を読み込ませないか、あるいはfgetc()で読み込むという手がありますが、sscanf()とどう結び付ければよいのかが分かりません。
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
質問書式の体をなしておらずすいませんでした。確かに読む気を起こさせるようなものでは無かったと思っております。これを機会にマナーを守って質問していきます。
|