复制 std::ofstream 附加内容

发布于 2024-11-02 10:07:12 字数 148 浏览 0 评论 0 原文

我正在使用 std::ofstream 进行跟踪输出。

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

您认为有什么方法可以实现这一目标吗?

谢谢

I am using a std::ofstream for trace output.

For some reasons, I sometimes want to dupplicate what I have appended at the end of the std::ofstream (that is not flushed or closed yet), into another std::ofstream;

Do you think of any way of achieving this ?

Thx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千柳 2024-11-09 10:07:12

来自 Tee 过滤器“http://www.boost.org/doc/libs/1_46_1/libs/iostreams/doc/index.html”rel =“nofollow noreferrer”>Boost.Iostreams可以将输出流分成两部分。

这是一个深受 Johannes Schaub 在他的回答 这里

#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";
}

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

The Tee filter from Boost.Iostreams can split an output stream into two.

Here's an example inspired heavily by the one given by Johannes Schaub in his answer here.

#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";
}

When I omit the flush manipulator, ss.str() returns an empty string. I don't know whether or not this is the expected behaviour.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文