c++ - 如何禁用 std::cerr?

标签 c++ console iostream standard-error

我得到了一个包含很多std::cerr的程序,它直接输出到我的终端。我想知道 std::cerrstd::cout 之间有什么区别。以及如何禁用 std::cerr(我不希望它输出到我的屏幕)?

最佳答案

正如其他人所提到的,如果这是一个类 Unix 系统,那么 2>/dev/null 会将 stderr (2) 重定向到天空中的 big bit bucket (/dev/null)。

但是这里没有人解释 stderr 和 stdout 之间的区别,所以我觉得有义务至少谈谈这个话题。

std::cout 是标准输出 流。这通常是您的程序应该输出消息的地方。

std::cerr 是标准错误 流。这通常用于错误消息。

因此,如果您的程序“包含大量 cerr”输出,那么可能值得看看为什么打印了这么多错误消息,而不是简单地隐藏这些消息。当然,这是假设您不只是碰巧有一个程序出于某种原因向 stderr 发出大量非错误输出。

关于c++ - 如何禁用 std::cerr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110941/

相关文章:

C++ - 替代基类函数指针调用

c# - 在 C# 控制台应用程序中编辑文本?

c++ - 带类的二叉树

c++ - 错误 LNK2001 : unresolved external symbol WINAPI

linux - Bash-Command 获取当前网络带宽使用率和CPU使用率

C++ 在我使用 getline 从文件中读取后,我无法再写入 txt 文件

c++ - 自定义流缓冲区能否在程序退出时和请求输入时自动刷新?

c++ - 如何轻松使 std::cout 线程安全?

c++ - Cmake target_precompile_headers 导致重新定义错误

python - 在 IPython 控制台的同一位置打印