回答編集履歴
1
質問文が変更されていたので、それに対応。
answer
CHANGED
@@ -17,10 +17,10 @@
|
|
17
17
|
v.push_back(suji);
|
18
18
|
}
|
19
19
|
```
|
20
|
-
eof() が true になるのは、**最後の
|
20
|
+
eof() が true になるのは、**最後の数字 を読んだ後に さらに ifs >> suji を実行した後**です。
|
21
|
-
質問文にある while の回り方の場合、 最後の
|
21
|
+
質問文にある while の回り方の場合、 最後の 数字 を読んだ後は まだ eof() は false です。
|
22
22
|
そして 次に ifs >> suji を実行したとき suji には値が設定されません。
|
23
|
-
(suji の値は
|
23
|
+
(suji の値は 最後の数字 のまま)
|
24
24
|
値が設定されないことは 質問文の while を
|
25
25
|
```lang-cpp
|
26
26
|
while(...) {
|
@@ -29,6 +29,6 @@
|
|
29
29
|
}
|
30
30
|
```
|
31
31
|
のようにして、実行してみるとよいです。
|
32
|
-
|
32
|
+
.... -999 と出力されるはずです。
|
33
33
|
|
34
|
-
while(ifs >> suji) とした場合は、
|
34
|
+
while(ifs >> suji) とした場合は、最後の数字を読んだ後に while の条件文の ifs >> suji が false になって、while を抜けてくれます。
|