оператор if — цепочка if-else не работает (C ++)

Я новичок, и у меня возникли проблемы с моим цепным оператором if-else. Когда я запускаю программу и ввожу, какой элемент я выбрал, он всегда выводит «Неверный ввод». Почему он не выполняет правильную функцию, если он равен ей в операторе if?

Спасибо,

дон

#include <iostream>
using namespace std;

int sum(int int1, int int2 ){

return int1 + int2;

}

int difference( int int1, int int2 ){

return int1 - int2;

}

int product( int int1, int int2 ){

return int1 * int2;

}

int quotient( int int1, int int2 ){

return int1 / int2;

}

int main(){

cout << "\nWelcome to the calculator.\n\n";
cout << "Please enter two numbers.\n\n";

int a;
int b;
cin >> a >> b;

cout << "What would you like to do with these numbers?\nHere are your options: add, subtract, multiply, or divide.\n\n";

string add;
string subtract;
string multiply;
string divide;

string choice;
cin >> choice;if( choice == add )
cout << sum( a, b );
else if ( choice == subtract )
cout << difference( a, b );
else if ( choice == multiply )
cout << product( a, b );
else if ( choice == divide )
cout << quotient( a, b );
else
cout << "Invalid entry.\n";

return 0;

}

-2

Решение

С этим утверждением:

string add;

Вы создаете строковую переменную с именем add, но ему еще не присвоено значение. Поэтому, когда вы сравниваете переменную с пользовательским вводом, программа увидит add как значение null и это не равно тому, что вводит пользователь.

Вы хотите присвоить ему значение:

string add = "add";

И все остальные строки одинаковы.

И сравнить std :: string:

if(choice == add)

Другой способ сделать это — просто проверить это с помощью постоянной строки:

if(choice == "add"){
//do something
}else if(choice == "subtract")
//do something else
-1

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


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