C++ 如何将ostringstream直接写入cout

C++ 如何将ostringstream直接写入cout,c++,C++,如果我有一个名为oss的std::ostringstream对象,我知道如果您正在使用,我可以做std::cout。无法读取此操作的底层缓冲区(因此ostringstream中的o),因此您必须依靠实现,通过str() 但是,如果使用(注意缺少o),则底层缓冲区是可读的,并且basic\u ostream有一个用于从缓冲区读取的特殊重载: #include <iostream> #include <sstream> int main() { std::strin

如果我有一个名为
oss
std::ostringstream
对象,我知道如果您正在使用,我可以做
std::cout。无法读取此操作的底层缓冲区(因此
ostringstream
中的
o
),因此您必须依靠实现,通过
str()

但是,如果使用(注意缺少
o
),则底层缓冲区是可读的,并且
basic\u ostream
有一个用于从缓冲区读取的特殊重载:

#include <iostream>
#include <sstream>

int main()
{
    std::stringstream ss1;
    ss1 << "some " << 111605 << " stuff" << std::flush;

    std::cout << ss1.rdbuf() << std::endl;
    std::cout << ss1.str() << std::endl;
}
#包括
#包括
int main()
{
std::stringstream ss1;

ss1谢谢!你的解决方案很有效。我也在这篇文章中找到了ostream用来实现同样的效果。我只是想知道使用ostream和stringstream有什么区别。哪一个性能更好?@WinstonHuang:你必须分析它,找出哪一个性能更好。不过,我怀疑它是否更快,而且肯定更快比仅仅使用
std::stringstream
复杂。在gcc 9.1.0上尝试。
std::cout