考慮:差異<< a_value
std::string s_a, s_b;
std::stringstream ss_1, ss_2;
// at this stage:
// ss_1 and ss_2 have been used and are now in some strange state
// s_a and s_b contain non-white space words
ss_1.str(std::string());
ss_1.clear();
ss_1 << s_a;
ss_1 << s_b;
// ss_1.str().c_str() is now the concatenation of s_a and s_b,
// <strike>with</strike> without space between them
ss_2.str(s_a);
ss_2.clear();
// ss_2.str().c_str() is now s_a
ss_2 << s_b; // line ***
// ss_2.str().c_str() the value of s_a is over-written by s_b
//
// Replacing line *** above with "ss_2 << ss_2.str() << " " << s_b;"
// results in ss_2 having the same content as ss_1.
問題:
是什麼stringstream.str(a_value)之間的區別;和 stringstream < < a_value;具體來說,爲什麼第一個不是 允許通過< <連接,但第二個呢?
爲什麼SS_1自動獲得S_A和S_B之間的空白,但 我們需要在可能 取代線***行明確添加空格:ss_2 << ss_2.str() << " " << s_b;
?
在你身邊例如,你的字符串是空的。 's_a和s_b'之間自動獲得空白是什麼意思? –
@JesseGood'// s_a和s_b包含非空白字' –