KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Consider: 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. Questions: What is the difference between stringstream.str( a_value ); and stringstream << a_value; and, specifically, why does the first not allow concatenation via << but the second does? Why did ss_1 automatically get white-space between s_a and s_b, but do we need to explicitly add white space in the line that could replace line ***: ss_2 << ss_2.str() << " " << s_b; ?
Tags (comma-separated)
Save Edits
Cancel