1

重複の可能性:
ostringstreamの文字列コンストラクターの目的は何ですか?

私は以下の問題に直面しています。testStrというostringstreamがあります。まず、<<を使用してその中にいくつかの文字を挿入します

testStr << somechar;

それから私は修正しました:

testStr.Str("some string")

これで、testStrに「SomeString」が含まれるようになります

ここで、最後にいくつかの文字(たとえば、「」と「TEST」)を追加して、「SomeStringTEST」になるようにします。

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」ですが、予想通り「WorldIsBeautifulENDS」です。

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 に答える