繁体   English   中英

如何将std :: ofstream重定向到std :: cout?

[英]How can I redirect a std::ofstream to std::cout?

我正在使用一些代码,这些代码使用std::ofstream*类型的全局调试记录器。 我想将其重定向到std :: cout,因为我实时使用代码,而不是针对它设计的批处理方法。

是否可以将全局std::ofstream*指针重定向到std::cout 我知道std::ofstream继承自std::ios ,它允许使用rdbuf()方法更改流缓冲区,但不幸的是,似乎std::ofstream重新定义了rdbuf()方法,这使得以下代码无法编译:

gOsTrace = new std::ofstream();
gOsTrace->rdbuf(std::cout.rdbuf());

还有另一种方法可以重定向gOsTrace对象以指向cout吗?

具体的IOStream流类的rdbuf()方法隐藏了在std::ios声明的那个。 您将需要明确的限定条件才能找到基类重载:

gOsTrace->basic_ios<char>::rdbuf(std::cout.rdbuf());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM