任何人都可以告诉我或者给我一个简单的例子,说明如何将int附加到包含单词“Something”(或任何单词)的字符串流中?
答案 0 :(得分:19)
stringstream ss;
ss << "Something" << 42;
供将来参考,请查看。
答案 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::ate
或std::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));