gpt4 book ai didi

c++ - 如何快速摆脱 std::cout

转载 作者:太空宇宙 更新时间:2023-11-04 16:10:41 27 4
gpt4 key购买 nike

我继承了一个很大的代码库,其中 std::cout经常用于打印调试信息。代码中没有真正的调试/日志功能,因为这将是一个短暂的任务(错误修复),现在实现调试/日志功能是不可能的。

这个程序输出的文本量确实让我很困扰,至少在我必须处理它之前,我想暂时禁用所有打印输出。

目前我看到两种解决方案:

  1. 只需将它们注释掉...这是很多工作,因为一些 std::couts跨越多行,所以我必须手动找到它们
  2. 替换所有出现的std::cout具有自己的 operator << 的结构并简单地吞下所有输出

对于这个问题,你有更好的解决方案吗?

最佳答案

你可以用类似的东西以编程方式重定向标准输出

FILE origSTDOUT = *stdout;
static FILE* nul = fopen( "NUL", "w" );
*stdout = *nul;
setvbuf( stdout, NULL, _IONBF, 0 );

从你想抑制输出并用类似的东西恢复

*stdout = origSTDOUT;

恢复它。

关于c++ - 如何快速摆脱 std::cout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29072499/

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