読者です 読者をやめる 読者になる 読者になる

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