类型'double'和'const char [2]'到二进制'运算符的操作数无效!='|

时间:2013-12-14 04:09:25

标签: c++

我有一个程序,我需要这样做如果我输入我的第一个数字为x它将终止但我不能这样做,因为我的num1是一个双倍。如果有人能帮助我弄清楚如何做到这一点,那就太好了。感谢

#include <iostream>

using namespace std;
void compute(double, double);

int main()
{
double num1, num2;
while (num1!="x")
{
cout << "Enter First Number: " << endl;
cin >> num1;
cout << "Enter Second Number: " << endl;
cin >> num2;
compute(num1, num2);
}
return 0;
}
void compute(double num1, double num2)
{
double sum,diff,prod,quotient;
cout << "First Number: " << num1 << endl;
cout << "Second Number: " << num2 << endl;
sum=num1+num2;
diff=num1-num2;
prod=num1*num2;
quotient=num1/num2;
cout << "Sum: " << sum << endl;
cout << "Difference: " << diff << endl;
cout << "Product: " << prod << endl;
cout << "Quotient" << quotient << endl;
}

2 个答案:

答案 0 :(得分:0)

这里的主要问题是您将数字与const char*进行比较(即字符串文字)。

如果您希望编译程序,可能需要将num1与字符x进行比较,例如num1 != 'x'(不是单引号)。我不保证这会正常工作,因为比较双打和角色有点荒谬,但它应该编译,可能会让你在未来的路上走得更远。

答案 1 :(得分:0)

您将输入存储在std::string中并检查字符串的内容,然后再将其转换为double

std::string s;
std::cout >> s;

if (s == "x")
  {
     // do something
  }
else
  {
     std::stringstream ss(s);
     double num1;
     ss >> num1;
     // do something else
  }