2013-12-14 62 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 
    } 
相關問題