while (!feof()) {}
と同じ匂いを感じる。

ところで、
while (...) {
 string str;
 ...
}
より
string str;
while (...) {
 ...
}
の方が、コンストラクタとデストラクタが毎回走らない分、コスト的には良いよね?
でも、スコープを限定した方が可読性等の面からは好ましいよね?
どっちが良いのかな。