c++ - 如果我使用 cout 语句作为 if 语句的条件会发生什么?

标签 c++

所以,我的编程老师让我尝试将 cout 语句作为 if 语句的条件,看看会发生什么。我试过了(只是做了一个随机代码)并没有发现任何特别之处。这是代码。

#include<iostream>
using namespace std;
int main()
{
    int x=1;
    int y=2022;
    if(cout<<"Covid")
    {
        cout << "\n Us \n";
        x=y;
        cout << x;
    }
}

输出很简单

Covid
Us
2022

我不明白为什么要使用它。根据我的业余理解,即使我使用 else 语句或任意数量的 else-if 语句,它们也不会运行,因为 if 语句的条件是 self 实现的。我可以直接编写整个代码而不使用 if 语句。那么,使用 if 语句的目的可能是什么?任何一般用途?

最佳答案

在 C++11 之前,当您编写 if(cout << "Covid") 时, 有一个隐式转换为 void* . C++ 标准未指定此值,除非流处于错误状态,然后 nullptr被退回。

从 C++11 开始,隐式转换为 bool . false表示流处于错误状态,true否则。

请注意,您必须注入(inject)一个非常时髦的 iostream -derived 对象,根据您的输入,输出确实是“Pakistan”!

关于c++ - 如果我使用 cout 语句作为 if 语句的条件会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70759474/

相关文章:

c++ - 在 Visual Studio for C++ 中使用通过 VCPKG 安装的 Qt5

c++ - 成功启用NaN移除方法上的-fno-finite-math-only

c++ - TForm 隐藏在主窗口后面

c++ - 在 C++ 中填充数据的组合

c++ - 如何使用 glColor4f() 和 glDrawArrays(GL_LINES, 0, 2) 绘制彩色线条

c++ - CMAKE 找不到 GUROBI 外部库

javascript - emscripten:如何解决 UnboundTypeError

c++ - constexpr int* ptr =&i 在 msvc 中编译但不使用 clang 和 gcc

c++ - 为什么返回对函数局部值的引用不是编译错误?

c++ - ostream_iterator for vector<vector<double>>