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