「Something」という単語(または任意の単語)を含む文字列ストリームにintを追加する方法の簡単な例を教えてもらえますか?
stringstream ss;
ss << "Something" << 42;
今後の参考のために、これをチェックしてください。
私はおそらくこの一般的な順序で何かをするでしょう:
#include <string>
#include <sstream>
#include <iostream>
int main() {
std::stringstream stream("Something ");
stream.seekp(0, std::ios::end);
stream << 12345;
std::cout << stream.str();
return 0;
}
通常のストリームでは、最後に追加するために、2番目のパラメーターとしてstd::ios::ate
またはstd::ios::app
を使用して開きますが、文字列ストリームでは、(少なくとも実際のストリームでは)確実に機能しないようです。コンパイラー-gccもVC++も、私がそうするとき/そうする場合に私が期待する出力を生成しません)。
すでにブーストを使用している場合は、これに使用できる lexical_cast があります。これは基本的に上記のパッケージバージョンであり、ストリームへの書き込みとストリームからの読み取りが可能なすべてのタイプで機能します。
string s("something");
s += boost::lexical_cast<string>(12);
Boostをまだ使用していない場合は、おそらく使用する価値はありませんが、使用している場合は、コードをより明確にすることができます。
foo(string("something")+boost::lexical_cast<string>(12));