我有一个程序,我需要这样做如果我输入我的第一个数字为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;
}
答案 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
}