回答編集履歴
2
fscanf関数に渡す引数の修正
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
return fscanf( fp, "%d %s %d %d %d %d\n",
|
30
30
|
|
31
|
-
&sp->id,
|
31
|
+
&sp->id, sp->name, &sp->shiken, &sp->enshu, &sp->kadai, &sp->tsuishi );
|
32
32
|
|
33
33
|
}
|
34
34
|
|
1
コード部分の明確化、標準入出力についての補足
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
「レコード」の読み込み、書き出しについて: 質問者さんの書き方は基本に忠実なのですが、例えば、受講態度も記録できるようにしたいと考えてみましょう。...全部のfprintfやfscanfの修正、面倒ですよね。間違えやすそうです。こういうときは、そこの部分だけ関数化してみるといいと思います。例えば
|
10
10
|
|
11
|
-
|
11
|
+
```C
|
12
12
|
|
13
13
|
int write_record( FILE* fp, const struct student* sp )
|
14
14
|
|
@@ -32,9 +32,23 @@
|
|
32
32
|
|
33
33
|
}
|
34
34
|
|
35
|
+
```
|
35
36
|
|
36
37
|
|
38
|
+
|
39
|
+
として、必要な部分で
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
```C
|
44
|
+
|
45
|
+
read_record( stdin, &s ); /* 標準入力(stdin)から取得 */
|
46
|
+
|
47
|
+
```
|
48
|
+
|
49
|
+
|
50
|
+
|
37
|
-
|
51
|
+
などとすれば、修正は1か所で済みますし、その部分で「何をしたいか」に集中できます。(スタイルの問題だと言われれば100%の反論はできませんが)
|
38
52
|
|
39
53
|
|
40
54
|
|