c++ - 这个 cout 将如何工作?

标签 c++ ostream

我正在检查一个代码并被这一行搞糊涂了。

if( cout > 0 )
{
    //some statements
}

请告诉我我们是否可以像那样使用cout。它将如何运作?

最佳答案

coutostream 类型(或派生的某种类型)的变量。 ostream 转换为 void *(pre-C++11) 或 bool (C++11) - 这两种转换函数检查文件流中的“错误状态”,如果有错误则分别返回 NULLfalse)。这两个都将与零进行比较,因为零分别与 NULLfalse 相同,因此语句变为 (void *)cout > NULL(bool) cout > false,如果 cout 不是 NULLfalse(这意味着“没有错误”)。

[注意:当使用 p > NULL 时,与 NULL 的指针比较可能无法正常工作,因为指针可能是“负数”,在这种情况下它不是大于 NULL - 我更愿意将 if (cout != 0)if (!cout) 视为更安全/更好的选择] .

关于c++ - 这个 cout 将如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20074032/

相关文章:

c++ - IEEE-754 float、double 和 quad 是否保证 -2、-1、-0、0、1、2 的精确表示?

c++ - 在 OpenCV 中将 vector 转换为垫子

c++ - 固定宽度整数类型 std::uint8_t 和 std::int8_t 的实现,C++

C++ : Read/Write Binary data to file when data is complex

c++ - 通过 stdin 和 ostream 向程序发送数据。 (C++)

c++ - 为什么返回类型引用输出流?

c++ - 模板和继承类中的 ostream 重载中的重新定义错误

c++ - CUDA编译器无法编译简单的测试程序

c++ - 每当需要 ostream 时使用 ofstream

c# - 选择编程语言的建议