回答編集履歴
2
記述の追加
test
CHANGED
@@ -55,3 +55,25 @@
|
|
55
55
|
}
|
56
56
|
|
57
57
|
```
|
58
|
+
|
59
|
+
**追記**
|
60
|
+
|
61
|
+
上の 2つのプログラムは等価ではありません。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
入力データが 3行で3行目の最後に '\n' が
|
66
|
+
|
67
|
+
ない場合、例えば、"abc\n" "def\n" "ghi" だったとします。
|
68
|
+
|
69
|
+
fgets が最後の "ghi" を読み込んだとき、
|
70
|
+
|
71
|
+
fgets は、NULL ではなく、buf を返します。
|
72
|
+
|
73
|
+
feof(fp) は 真(0以外の値) になります。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
最初のプログラムでは、"ghi" を表示します。
|
78
|
+
|
79
|
+
2つ目のプログラムでは、"ghi" を表示しません。
|
1
記述の間違いを訂正
test
CHANGED
@@ -12,11 +12,11 @@
|
|
12
12
|
|
13
13
|
feof(fp) は直前に実行した入力関数がファイルの最後を検出し
|
14
14
|
|
15
|
-
入力処理が失敗したときに 0 になります。
|
15
|
+
入力処理が失敗したときに 0 以外の値になります。
|
16
16
|
|
17
17
|
その実行例では fp から 13行のデータを読み込んでいるのですが、
|
18
18
|
|
19
|
-
13行目の読み込みは成功するので、feof(fp) は 0 で
|
19
|
+
13行目の読み込みは成功するので、feof(fp) は 0 です。
|
20
20
|
|
21
21
|
そして、14行目を fgets で読みに行きます。
|
22
22
|
|