консоль — x + y == ans; Заявление не имеет никакого эффекта (C ++)

Я знаю, что мог бы написать калькулятор более эффективным способом, но я на последнем шаге, поэтому я хочу закончить это.

Предупреждения появляются после usleep ()

В моей консоли я получаю 0 в качестве ответа и получаю 4 предупреждения о том, что x +, -, *, / == ans ничего не делает.

Это, вероятно, глупая ошибка, но, пожалуйста, халяп. Я новичок в C ++ и программировании в целом.

#include <iostream>
#include <sstream>
#include <unistd.h>

using namespace std;

int main()
{
//X is first number, Y is second
int ans = 0;
string i;
int x;
int y;
string op;

cout << "This is a four function integer calculator." << endl << endl << "Type 'help' at any time to view the help screen" << endl<< endl<<"Insert your first number" << endl;
cin >> i;
if(i=="help"){
cout << "Help Menu" << endl << endl << "add = +" << endl <<"subtract = -" << endl <<"multiply = *" << endl <<"divide = /"<< endl;
cin >> i;
}else{
stringstream(i) >> x;
cout << "Insert your operator" << endl;
cin >> op;
cout << "Insert your second number" << endl;
cin >> y;
cout << "The calculator will now preform " << x << " " << op << " " << y << endl;
usleep(1000000);
if(op== "+"){
x + y == ans;
return ans;
}else if(op=="-"){
x - y == ans;
return ans;
}else if(op=="*"){
x * y == ans;
return ans;
}else if(op=="/"){
x / y == ans;
return ans;
}else{
cout << "You inserted an illegal operator, please restart the application" << endl;
}
cout << endl << ans << endl;
}
}

-4

Решение

== является оператором сравнения. Так с

x + y == ans;

Вы проверяете, если x + y равняется ans а затем откажитесь от результата сравнения. Это ничего не делает, таким образом, предупреждение.

Если вы хотите назначить x + y в ansиспользовать

ans = x + y;

Обратите внимание, что ans должен быть на левой стороне.

2

Другие решения


По вопросам рекламы [email protected]