I have this code,
int main() { std::string st; std::stringstream ss; ss<<'hej hej med dig'<<std::endl; std::getline(ss,st,' '); std::cout <<'ss.rdbuf()->str() : ' << ss.rdbuf()->str(); std::cout <<'ss.rdbuf() : ' << ss.rdbuf(); return 0; }
Giving me this output
ss.rdbuf()->str() : hej hej med dig
ss.rdbuf() : hej med dig
But why is that? Is that because of ostreams definition of operator<str() gives me different output. In my eyes the output should be the same even if I have used getline.
Returns copy of all buffer content.
What doing
std::cout << ss.rdbuf();?See description for
It read character by character from buffer and write them to ostream, until eof/fail on writing/exception occurs.
You already have read one word from buff. Now it read rest part.