gpt4 book ai didi

c++ - 如何将木屐重新定义为原始木屐和日志文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:33:07 27 4
gpt4 key购买 nike

我在这里看到了一个有用的开始:

http://www.cs.technion.ac.il/~imaman/programs/teestream.html

而且创建一个同时进入日志文件和日志文件的新流非常有用。

但是,如果我尝试将 clog 重新定义为新流,则它不起作用,因为新流与 clog 具有相同的 rdbuf(),因此以下内容无效:

clog.rdbuf(myTee.rdbuf());

那么我怎样才能修改 tee 类使其拥有自己的 rdbuf() 然后它可以成为 clog 的目标?

谢谢。

-威廉

最佳答案

如果你真的想继续为 tee 使用 std::clog 而不是将输出发送到不同的流,你需要降低一个级别:不是从 ostream 派生,而是从 streambuf 派生。然后你可以这样做:

fstream logFile(...);
TeeBuf tbuf(logFile.rdbuf(), clog.rdbuf());
clog.rdbuf(&tbuf);

有关如何派生您自己的 streambuf 类的更多信息,请参阅 here .

关于c++ - 如何将木屐重新定义为原始木屐和日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com