1

可能重复:
ostringstream 的字符串构造函数的目的是什么?

我面临以下问题。我有一个 ostringstream 说 testStr。我首先使用 << 在其中插入几个字符

testStr << somechar;

然后我修改:

testStr.Str("some string")

所以现在 testStr 包含“一些字符串”

现在我想在最后添加一些字符(比如“”和“TEST”),这样它就可以变成“Some String TEST”。

testStr << " " << "TEST";

但我得到“TESTString”。请让我知道可以做什么?

添加示例代码:

#include <iostream>
#include <sstream>
int main() {
  std::ostringstream s;
  s << "Hello";
  s.str("WorldIsBeautiful");
  s << " " << "ENDS";
  std::cout << s.str() << std::endl;

}

输出是“ENDSIsBeautiful”,正如我所期望的“WorldIsBeautiful ENDS”。

4

1 回答 1

2

我不太确定,但看起来它仍然设置在开头。要解决此问题,您可以调用将输出位置指示器设置回末尾。我在这里有一个工作样本:s.seekp(0, std::ios_base::end);

#include <iostream>
#include <sstream>

int main() {
  std::ostringstream s;
  s.str( "Hello" );
  s.seekp(0, std::ios_base::end);
  s << "x" << "World";
  std::cout << s.str() << std::endl;
}

输出:

HelloxWorld
于 2012-09-17T06:58:54.000 回答