以下有什么区别
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 中的任何内容吗?
谢谢