1、屏蔽std::cout
参见:[url]http://stackoverflow.com/questions/8246317/redirecting-function-output-to-dev-null[/url]
有时我们要将自己的程序嵌入到其他服务中去,服务一般会有自己的日志系统,但为了我们自己的代码可以单独调试,还是使用cout方便。
当我们调试完自己的代码后,可以通过以下方式屏蔽cout的输出:
[b]方法1:重定向(输出到null设备自然就没输出了):[/b]
[quote] ofstream file("/dev/null");
//save cout stream buffer
streambuf* strm_buffer = cout.rdbuf();
// redirect cout to /dev/null
cout.rdbuf(file.rdbuf());[/quote]
[b]方法2:设置输出流状态为fail[/b]
[quote] std::cout.setstate(std::ios::failbit) ;
foo();
std::cout.clear() ;[/quote]
参见:[url]http://stackoverflow.com/questions/8246317/redirecting-function-output-to-dev-null[/url]
有时我们要将自己的程序嵌入到其他服务中去,服务一般会有自己的日志系统,但为了我们自己的代码可以单独调试,还是使用cout方便。
当我们调试完自己的代码后,可以通过以下方式屏蔽cout的输出:
[b]方法1:重定向(输出到null设备自然就没输出了):[/b]
[quote] ofstream file("/dev/null");
//save cout stream buffer
streambuf* strm_buffer = cout.rdbuf();
// redirect cout to /dev/null
cout.rdbuf(file.rdbuf());[/quote]
[b]方法2:设置输出流状态为fail[/b]
[quote] std::cout.setstate(std::ios::failbit) ;
foo();
std::cout.clear() ;[/quote]
本文介绍了两种屏蔽C++中std::cout输出的方法:一是通过重定向输出至null设备;二是设置输出流的状态为fail。这两种方法有助于在调试完成后避免不必要的标准输出。
521

被折叠的 条评论
为什么被折叠?



