是什麼以下將一個stringstream附加到另一個。什麼是最安全的?
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中什麼都不會被追加?
感謝
* Aside *:cplusplus.com不是「** ** ** C++參考」,它是「** a ** C++參考」。爲了正確,許多人更喜歡http://cppreference.com。當然,**參考是2003或2011版本中的ISO C++標準。 –
顯而易見的'a <<「」<< b;'? – moooeeeep
@moooeeeep你不能以這種方式追加字符串流。 – loop