C++杂记-- 重定向std::cout等

1、屏蔽std::cout
参见: http://stackoverflow.com/questions/8246317/redirecting-function-output-to-dev-null
有时我们要将自己的程序嵌入到其他服务中去,服务一般会有自己的日志系统,但为了我们自己的代码可以单独调试,还是使用cout方便。
当我们调试完自己的代码后,可以通过以下方式屏蔽cout的输出:
方法1:重定向(输出到null设备自然就没输出了):
引用
ofstream file("/dev/null");
//save cout stream buffer
streambuf* strm_buffer = cout.rdbuf();
// redirect cout to /dev/null
cout.rdbuf(file.rdbuf());


方法2:设置输出流状态为fail
引用
   std::cout.setstate(std::ios::failbit) ;
    foo();
    std::cout.clear() ;

猜你喜欢

转载自cherishlc.iteye.com/blog/2369896