`

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

    博客分类:
  • C++
c++ 
阅读更多
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() ;
分享到:
评论

相关推荐

    为什么一些人写c++代码,前面会加上std::ios::sync_with_stdio(false); cin.tie(0);这两句话??

    这是因为在c++中cin,cout虽然方便但是效率低。 是因为先把要输出的东西存入缓冲区,再输出,导致效率降低,而这段语句可以来打消iostream的输入和输出缓存,可节省时间,使效率能达到scanf与printf效率。 tie 函数...

    C++ Primer 源程序

    #include #include "Sales_item.h" int main() ... std::cout << item1 + item2 << std::endl; return 0; // indicate success } else { std::cerr << std::endl; return -1; // indicate failure }

    后缀表达式c++实现代码

    std::cout << "src: " << src << std::endl; Expression expression; Expression::PrefixType result; int ret = expression.ToPrefix(src, result); if (ret != 0) { std::cout ...

    FLV解复用代码实现!!!!

    std::cout 写入视频size:" << pkt->size << std::endl; //添加start code,注意:MP4包不带start code ts包是带的。带的话也能调用该接口,不会重复添加 std::cout 视频时间戳:" << pkt->pts << ...

    学生信息管理系统.rar

    用c++所写的学生信息管理系统,dos操作 void menu() { std::cout ; std::cout << "Please choose an operation:\n"; std::cout [1] List all students\n"; std::cout [2] Display information of a ...

    学生成绩管理系统C++.rar

    cout << "-------------1: 添加学生信息-----------------" ; cout << "-------------2: 删除学生信息-----------------" ; cout << "-------------3: 修改学生信息-----------------" ; cout << "-----------...

    使用c++实现boost::any类

    使用c++实现boost::any类 any类可以存放任意类型数据,如: void test_any() { any any_a1(123); int a2 = any_cast(any_a1); int* p_a2 = any_cast(&any_a1); std::cout *p_a2="*p_a2<<std::endl; any any_b1...

    关于"Hello World!"程序

    // a small C++ program #include int main() { std::cout , world!" << std::endl; std::operator(std::cout, "Hello, world!"); // friend cout是模板类的实例 std::cout.operator(std::endl); //...

    C++17 使用 std::string_view避免字符串拷贝优化程序性能

    C++中std::string是日常Coding中经常使用的一个类,使用起来非常方便,但是也存在一些弊端。 如下代码,参数传递的过程发生了内存分配(Memory Allocation)和内存拷贝。 void fun(const std::string& s) { std::...

    bcrypt库C/C++使用

    bcrypt库C/C++使用 ```cpp #include "bcrypt/BCrypt.hpp" #include int main(){ std::string password = "123456"; //此函数用于生成hash字符串 std::string hash = BCrypt::generateHash(password); //用于...

    计算两个整数的最小公倍数.docx

    最小公倍数c++ . 计算两个整数的最小公倍数.docx int num1 = 2, num2= 9; std::cout 请输入第一个整数: "; // std::cin >> num1; std::cout 请输入第二个整数: "; // std::cin >> num2; int result = lcm...

    c++性能测试精确到秒、毫秒、纳秒

    c++性能测试精确到秒、毫秒、纳秒 #include #include #include void Run() { for (int i = 0; i ; ++i) { } } int main() { auto beforeTime = std::chrono::steady_clock::now(); Run(); ...

    [C++]简单实用的字符转换类

    std::cout (src, E_CHAR, E_WCHAR).WChar(); std::cout (src, E_CHAR, E_UTF8).UTF8(); std::cout (src, E_UTF8, E_WCHAR).WChar(); std::cout (wsrc, E_CHAR).Char(); std::cout (wsrc, E_UTF8).UTF8();

    斐波那契数列及C++代码实现收藏学习.docx

    斐波那契数列 斐波那契数列是一个经典的数列,其中每个数字是前两个数字的和。... std::cout << std::endl; return 0; } ``` 然而,上面的递归方法对于较大的`n`来说是非常低效的,因为它会重复计

    leetcode2-vscode-leetcode-cpp-debug:使用C++对LeetCode的调试支持

    leetcode 2 C++ 的 LeetCode 调试器 在 C++ 中调试支持 英文文档| 快速开始 注意:在开始调试之前,您必须检查 C++ 调试器工具的可用性。 从 ...cout, ...std::istream和std::string (来自文件的输入)

    http-master 源码

    Simple HTTP asynchronous library for modern C++. Depends on coro. Here's the basic usage: auto coro = coro::start([]{ try { ... "{ \"UserId\": \"matt\", \"Password\": \"matt\"}... std::cout () << std::end

    新版EditLog,重定向cout内容到CEdit窗口

    重定向cout内容到CEdit窗口,新版本EditLog支持VC++2010; 旧版信息 /*\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \ editlog.h, Fast asynchronous text logging using a ...

    http 源码 http 源码

    Simple HTTP asynchronous library for modern C++. Depends on coro. Here's the basic usage: auto coro = coro::start([]... std::cout () << std::endl; std::cout () << std::endl; std::cout () << std::endl;

Global site tag (gtag.js) - Google Analytics