14

「何か」という単語(または任意の単語)を含む文字列ストリームにintを追加する方法の簡単な例を教えてもらえますか?

4

3 に答える 3

18
stringstream ss;
ss << "Something" << 42;

今後の参考のために、これをチェックしてください。

http://www.cplusplus.com/reference/iostream/stringstream/

于 2010-01-14T17:40:37.870 に答える
3

私はおそらくこの一般的な順序で何かをするでしょう:

#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;
}

std::ios::ate通常のストリームでは、最後に追加するために、または2番目のパラメーターとして開きstd::ios::appますが、文字列ストリームでは、それは確実に機能しないようです(少なくとも実際のコンパイラーでは、gccもVC++も出力を生成しません)いつ/そうするかを期待します)。

于 2010-01-14T17:42:24.883 に答える
1

すでにブーストを使用している場合は、これに使用できるlexical_castがあります。これは基本的に上記のパッケージバージョンであり、ストリームへの書き込みとストリームからの読み取りが可能なすべてのタイプで機能します。

string s("something");

s += boost::lexical_cast<string>(12);

Boostをまだ使用していない場合は、おそらく使用する価値はありませんが、使用している場合は、コードをより明確にすることができます。

foo(string("something")+boost::lexical_cast<string>(12));
于 2010-01-14T18:25:23.723 に答える