一条语句中没有 error/warning 用于多个 cout

No error/warning for multiple cout in one statement

我不小心在一个语句中有多个 cout。

cout<<5<<cout<<6;

它显示了一些垃圾,我意识到我的错误。但为什么在这种情况下没有错误或警告?我将代码块 IDE 与 mingw 一起用于 windows.

编辑:完整代码为

#include <iostream>

using namespace std;

int main(void)
{
    cout<<5<<cout<<6;
    return(0);
}

构建消息是

mingw32-g++.exe -Os -pedantic -Wextra -Wall -c "C:\Study Materials\C++\CPP Programs MP Compiled\inputOutput\q1.cpp" -o "C:\Study Materials\C++\CPP Programs MP Compiled\inputOutput\q1.o" mingw32-g++.exe -o "C:\Study Materials\C++\CPP Programs MP Compiled\inputOutput\q1.exe" "C:\Study Materials\C++\CPP Programs MP Compiled\inputOutput\q1.o" -std=gnu99 Process terminated with status 0 (0 minute(s), 2 second(s)) 0 error(s), 0 warning(s) (0 minute(s), 2 second(s))

也许没有看到任何错误

编译器为什么要警告您一些完全合法的事情?您正在指示程序输出 cout 的内容,这是合法的,并且会起作用。

我不确定 operator << 是如何为 cout 定义的,但打印它的地址是我的期望,所以像 0x489944(或更长)这样的东西似乎是正确的。

周围有 5 和 6,您的输出似乎是正确的:5+0x489944+6 = 50x4899446

cout 在 C 中是完全合法的。这意味着编译器不会告诉你任何错误,因为没有错误!

这意味着没有错误显示。