istringstreamを使い回す
string line istringstream ist; while (getline(cin, line)) { ist.str(line); /* なんかの処理 */ }
上記のように使いまわそうとすると失敗する。 フラグがbadの状態になっていたり読み込んだ位置とかを戻さないといけなかったりでバグになってしまう。
string line istringstream ist; while (getline(cin, line)) { ist.clear(); ist.str(line); /* なんかの処理 */ }
clearしてから使おう。
参考: string - C++ - repeatedly using istringstream - Stack Overflow