dupplicating std :: ofstream追加内容

Ste*_*and 4 c++ std ofstream

我使用std :: ofstream进行跟踪输出.

出于某些原因,我有时想要将我在std :: ofstream(尚未刷新或关闭)的末尾附加的内容重复到另一个std :: ofstream;

你有没有想过实现这个目标的方法?

谢谢

Emi*_*ier 7

Boost.IostreamsTee过滤器可以将输出流分成两部分.

这里是由给定一个严重的启发为例约翰内斯·绍布在他的答案在这里.

#include <sstream>
#include <iostream>
#include <boost/iostreams/stream.hpp>
#include <boost/iostreams/tee.hpp>

int main()
{
    namespace io = boost::iostreams;
    typedef io::tee_device<std::ostream, std::stringstream> TeeDevice;
    typedef io::stream<TeeDevice> TeeStream;
    std::stringstream ss;
    TeeDevice teeDevice(std::cout, ss);
    TeeStream tee(teeDevice);
    tee << "Hello World\n" << std::flush;
    std::cout << "ss: " << ss.str() << "\n";
}
Run Code Online (Sandbox Code Playgroud)

当我省略flush操纵器时,ss.str()返回一个空字符串.我不知道这是否是预期的行为.