如何使用C ++ String Streams追加int?

时间:2010-01-14 17:39:12

标签: c++ string stringstream

任何人都可以告诉我或者给我一个简单的例子,说明如何将int附加到包含单词“Something”(或任何单词)的字符串流中?

3 个答案:

答案 0 :(得分:19)

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

供将来参考,请查看。

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

答案 1 :(得分:4)

我可能会对这个一般顺序做点什么:

#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::atestd::ios::app作为第二个参数,但使用字符串流,似乎无法正常工作(在至少使用真正的编译器 - 当我/如果我这样做时,gcc和VC ++都不会产生我期望的输出。

答案 2 :(得分:1)

如果您已经在使用boost,则可以使用lexical_cast进行此操作。它基本上是上面的打包版本,适用于任何可以写入流和从流中读取的类型。

string s("something");

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

如果你没有使用boost,它可能不值得使用,但是如果你这样可以让你的代码更清晰,特别是做类似的事情

foo(string("something")+boost::lexical_cast<string>(12));