回答編集履歴

2

fscanf関数に渡す引数の修正

2015/12/15 05:57

投稿

majiponi
majiponi

スコア1720

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, &sp->name, &sp->shiken, &sp->enshu, &sp->kadai, &sp->tsuishi );
31
+ &sp->id, sp->name, &sp->shiken, &sp->enshu, &sp->kadai, &sp->tsuishi );
32
32
 
33
33
  }
34
34
 

1

コード部分の明確化、標準入出力についての補足

2015/12/15 05:57

投稿

majiponi
majiponi

スコア1720

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
- として、必要部分でread_record( fp, &s );などとすれば、修正は1か所で済みますし、その部分で「何をしたいか」に集中できます。(スタイルの問題だと言われれば100%の反論はできませんが)
51
+ などとすれば、修正は1か所で済みますし、その部分で「何をしたいか」に集中できます。(スタイルの問題だと言われれば100%の反論はできませんが)
38
52
 
39
53
 
40
54