`

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() ;
分享到:
评论

相关推荐

    MFC,C++,C语言 json转换成std::map源码,无需编译,无需关心引用位置,直接引用即可使用

    本主题主要关注的是一个名为"MyJson"的库,该库提供了将JSON转换为`std::map`的功能,特别适用于MFC(Microsoft Foundation Classes)框架下的C++开发。 MFC是微软为Windows应用程序开发提供的一套类库,基于C++,...

    std::List类的遍历获得元素的操作二法

    在C++标准库中,`std::list`是一种双链表容器,它提供了一种高效的方式来存储和操作序列数据。由于`std::list`不是随机访问容器,因此它不支持像数组那样的通过索引直接访问元素(如`[]`运算符)。但是,`std::list`...

    cout不打印,不显示,不输出 怎么办?

    在编程过程中,尤其是在C++语言环境下,我们经常使用`std::cout`来实现标准输出,例如打印变量的值或者向控制台输出文本。然而,有时可能会遇到`cout`不打印、不显示或不输出的情况,这通常是由于多种原因引起的。让...

    解释c++的输入输入流 小程序

    - **`std::cin`**:这是C++的标准输入流,主要用于从键盘或其他标准输入设备(如管道或重定向)接收数据。例如,我们可以通过`std::cin >> var`来读取用户输入的值到变量var中。 - **`std::cout`**:这是标准输出...

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

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

    C++之STL的vector详解,包括初始化和各种函数:vector的初始化、数据的增删查改等

    std::cout << "Size of vector v: " () << std::endl; // 输出:Size of vector v: 0 return 0; } ``` 2. **拷贝构造函数 copy 区间** - **定义**: ```cpp std::vector(iter_begin, iter_end); ``` - **...

    这是关于C++控制输出格式

    std::cout << "Scientific notation: " << std::setprecision(5) << std::scientific << pi << std::endl; // 科学计数法 std::cout << "Fixed notation: " << std::setprecision(5) << std::fixed << pi << std::...

    C++程序设计第三版答案

    ### 第一章:C++基础 #### 习题1.2-1 - **题目**: 编写一个程序,输出"C++Գơ"。 - **解答**: ```cpp #include int main() { std::cout << "C++Գơ" << std::endl; return 0; } ``` - **解析**: 此题主要...

    C++11 并发指南之std::mutex详解

    在C++11中,`std::mutex`是并发编程中的基础组件,它提供了一种机制来保护共享资源免受并发访问的影响。互斥量(Mutex)确保在任何时刻只有一个线程能持有对资源的访问权,从而防止数据竞争和其他并发问题。在`...

    C++11中std::future的具体使用方法

    在C++11标准库中,`std::future`是一个重要的工具,用于处理异步编程。它提供了一种方式来获取在另一个线程或者异步操作中计算的结果,确保了线程安全的数据访问。`std::future`的核心特性是它引用的共享状态是唯一...

    C++11中lambda、std::function和std:bind详解

    std::function(int)> f = [](int i) { std::cout << i << std::endl; }; f(10); ``` **std::bind**是一个函数对象,用于绑定函数(包括成员函数)的参数,使得某些参数在调用时固定不变。这允许我们延迟函数调用,...

    C++头文件大全

    - **示例**:设置输出精度`std::cout << std::fixed << std::setprecision(2) ;`。 #### `<ios>` - **用途**:基础输入输出流类库,提供了输入输出的基本功能。 - **示例**:使用`std::cin`读取输入。 #### `...

    c++常用三角函数分享交流学习

    在C++编程语言中,数学库提供了大量的数学函数来帮助开发者进行复杂的数学运算。这些函数在处理几何问题、科学计算及工程应用时尤其有用。本文将详细介绍标题与描述中提到的一些常用的三角函数及其相关数学函数,...

    C++常用的编程关键字.md

    ### C++常用编程关键字详解 #### 一、引言 C++作为一种强大的面向对象的编程语言,在软件开发领域...此外,可以进一步探索C++中的其他高级特性和编程技巧,如类、对象、模板等,以便更好地利用这门语言的强大功能。

    C++常用库函数

    - `std::cout`:用于向标准输出设备(通常是显示器)打印数据。 - `std::endl`:插入一个换行符并刷新输出缓冲区。 2. **字符串处理库(string)**: - `std::string`:用于存储和操作字符串。 - `std::getline...

    计算器程序c++代码

    std::cout 结果是:" << num1 + num2 << std::endl; } else if (operation == '-') { std::cout 结果是:" << num1 - num2 << std::endl; } else if (operation == '*') { std::cout 结果是:" * num2 << std::...

    c/c++系统函数接口

    - **`std::iostream`**:I/O流库,提供`cin`和`cout`等对象进行输入输出操作。 - **`std::bitset`**:用于位操作的类,常用于表示有限集合或布尔值数组。 - **`std::queue`和`std::stack`**:两种抽象数据类型,...

    归并排序算法.docx. 归并排序是一种基于分治思想的排序算法,它将一个未排序的数组分成两个已排序的子数组,然后递归地对子数组进

    } std::cout << std::endl; // 调用归并排序算法 mergeSort(arr, 0, arr.size() - 1); std::cout << "Sorted array: "; for (int num : arr) { std::cout ; } std::cout << std::endl; return 0;}

    C++头文件一览---C++和传统C头文件说明

    在C++编程中,头文件是代码组织的重要组成部分,它们包含了函数声明、宏定义以及类型定义等。本文将深入探讨一系列C++及传统C语言中的常用头文件,并解释这些头文件的主要功能及其在程序设计中的应用。 #### C语言...

Global site tag (gtag.js) - Google Analytics