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