回答編集履歴
1
質問文が変更されていたので、それに対応。
test
CHANGED
@@ -36,13 +36,13 @@
|
|
36
36
|
|
37
37
|
```
|
38
38
|
|
39
|
-
eof() が true になるのは、**最後の
|
39
|
+
eof() が true になるのは、**最後の数字 を読んだ後に さらに ifs >> suji を実行した後**です。
|
40
40
|
|
41
|
-
質問文にある while の回り方の場合、 最後の
|
41
|
+
質問文にある while の回り方の場合、 最後の 数字 を読んだ後は まだ eof() は false です。
|
42
42
|
|
43
43
|
そして 次に ifs >> suji を実行したとき suji には値が設定されません。
|
44
44
|
|
45
|
-
(suji の値は
|
45
|
+
(suji の値は 最後の数字 のまま)
|
46
46
|
|
47
47
|
値が設定されないことは 質問文の while を
|
48
48
|
|
@@ -60,8 +60,8 @@
|
|
60
60
|
|
61
61
|
のようにして、実行してみるとよいです。
|
62
62
|
|
63
|
-
|
63
|
+
.... -999 と出力されるはずです。
|
64
64
|
|
65
65
|
|
66
66
|
|
67
|
-
while(ifs >> suji) とした場合は、
|
67
|
+
while(ifs >> suji) とした場合は、最後の数字を読んだ後に while の条件文の ifs >> suji が false になって、while を抜けてくれます。
|