次の違いは何ですか
stringstream a;
stringstream b;
a << "hi";
b << "there";
a << " " << b.rdbuf();
またはa << " " << b.str();
またはa << " " << b.str().c_str();
私はrdbuf()を使用しています。私は、C++リファレンスがstringstream:: rdbuf:について述べていることに気づきました。
正常に構築されたistringstreamオブジェクトの場合、バッファ文字列が空であっても、このポインタがNULLになることはないことに注意してください。
私はそれをrdbuf()がNULLを返さないことを意味すると思いますか?NULLを渡すことはできません。私はこのような欠点がありましたchar *array = NULL; a << array;
。stringstream bが空の場合、実行時に動作が定義されていa << b.rdbuf() << "some text"
ますか?その場合、rdbufによって返される最初の文字にはeof特性があるので、bには何も追加されませんか?
ありがとう