web-dev-qa-db-ja.com

ostringstreamをクリアする方法

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

出力は次のとおりです。

 123 
 123456 

私は欲しい:

 123 
 456 

Ostringstreamをリセットして目的の出力を取得するにはどうすればよいですか?

88
Alex F
_s.str("");
s.clear();
_

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

通常、既知のパフォーマンスホットスポットでコードが使用されている場合を除き、既存のオブジェクトを再利用する代わりに、新しい_std::ostringstream_オブジェクトを使用する方が簡単、簡潔、簡単です(簡単ですか?)。

189
James McNellis