我得到了一个包含很多std::cerr
的程序,它直接输出到我的终端。我想知道 std::cerr
和 std::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/