谁能告诉我或指向一个简单的示例,说明如何将 int 附加到包含单词“Something”(或任何单词)的字符串流中?
问问题
33016 次
3 回答
18
stringstream ss;
ss << "Something" << 42;
以供将来参考,请查看此内容。
于 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
或std::ios::app
作为第二个参数打开,但使用字符串流,这似乎不能可靠地工作(至少对于真正的编译器——gcc 和 VC++ 都不会产生输出我希望何时/如果我这样做)。
于 2010-01-14T17:42:24.883 回答
1
如果你已经在使用 boost,它有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 回答