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