1. ホーム
  2. c++

[解決済み] ostringstreamをクリアする方法 [重複]。

2022-02-07 04:18:07

質問

    ostringstream s;

    s << "123";
    cout << s.str().c_str() << endl;

    // ここで ostringstream をクリアするには?
    s << "456";
    cout << s.str().c_str() << endl;

出力は

123
123456

必要です。

123
456

ostringstreamをリセットして希望の出力を得るにはどうしたらよいですか?

どのように解決するのですか?

s.str("");
s.clear();

最初の行は、文字列を空にリセットするために必要です。2行目は、設定されている可能性のあるエラーフラグをクリアするために必要です。 エラーフラグが設定されていないことが分かっている場合、あるいはエラーフラグをリセットする必要がない場合は、この行は必要ありません。 clear() .

通常、より簡単できれいで、よりわかりやすい(ストレートな? std::ostringstream オブジェクトを再利用するのではなく、既存のオブジェクトを再利用します。