2013-12-14 58 views
1

我有一个程序,我需要这样做,所以如果我输入我的第一个数字作为x它会终止,但我不能这样做,因为我的num1是一个双。如果有人能帮我弄清楚如何做到这一点,那就太好了。由于类型'double'和'const char [2]'的二元运算符无效操作数!='|

#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; 
} 

回答

0

你的主要问题,这里是你的一些比较到const char*(即一个字符串)。

如果您希望程序编译,您可能需要比较num1与字符x,例如num1 != 'x'(不是单引号)。我不能保证这样做会正常工作,因为比较双打和角色有点可笑,但它应该编译并且可能会让你走得更远。

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 
    } 
相关问题