std::stringstream に std::ends を与えてはいけない。というか不要。

与えると文字数が1つ増えてしまう。

コード中のstrstreamをstringstreamに書き換える途中ではまった。

void test()
{
	strstream str_s;
	stringstream string_s;

	str_s    << "hello" << ends;	// 5文字入れる
	string_s << "hello" << ends;

	char* p  = str_s.str();		// 内容を取得
	string s = string_s.str();

	cout << strlen(p)  << endl;	// 文字数を表示
	cout << s.length() << endl;

	delete []p;
}

出力結果

5
6