类型为'int'和'const char [15]'的无效操作数到二进制数'operator <<'^

时间:2018-08-28 02:20:30

标签: c++

我正在尝试做一个简单的数学问题,但我不断收到此错误消息。怎么了?我正在使用cloud9 ide。

  

/home/ubuntu/workspace/Sphere.cpp:在“ int main()”函数中:   /home/ubuntu/workspace/Sphere.cpp:20:63:错误:无效的操作数   类型为“ int”和“ const char [15]”的二进制文件“ operator <<”        cout <<“圆的面积是:” << 3.14 * meters ^ 2 <<“ meters squared” << endl;

这是完整的代码:

#include <iostream>

using namespace std;

int main() {

    // Declare the radius
    int meters;
    cout << "Please enter the radius in meters: ";
    cin >> meters;

    // Calculate Diameter

    cout << "The diameter of the circle is: " << meters*2 << "m" << endl;

    //Calculate Area
    double PI;
    PI = 3.14;

    cout << "The area of the circle is: " << 3.14*meters^2 << "meters squared" << endl;

}

1 个答案:

答案 0 :(得分:6)

在C ++中,^运算符的含义不是不是。这意味着对两个整数值进行按位XOR运算。

并且由于^的{​​{3}}比<<低,因此编译器将您的语句解释为

((cout << "The area of the circle is: ") << (3.14*meters)) ^
    ((2 << "meters squared") << endl);

迷上2 << "meters squared"应该做什么。

通常,C ++具有precedence用于求幂。但是,仅对一个数字求平方是个过大的杀伤力,最好仅将那个数字与其自身相乘:

std::cout << "The area of the circles is: " << 3.14*meters*meters 
          << " meters squared" << std::endl;