Ошибка error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
#include <iostream>
using namespace std;
int main(){
cout<<"Это мой калькулятор, он слегка неоче"<<endl;
cout<<"Обозначения для математичесских операций:"<<"\n"<<"+ это сложение"<<"\n"<<"- это вычитание"<<"\n"<<"* это умножение"<<"\n"<<"и наконец / это деление";
int num1,num2;
char symbol;
cout<<"Введите первое число:";cin>>num1;
cout<<"\n"<<"Введите второе число:";cin>>num2;
cout<<"\n"<<"Введите знак математичесской операции:";cin>>symbol;
if (symbol=="+"){
cout<<num1+num2;
}
else if (symbol=="-"){
cout<<num1-num2;}
else if (symbol=="*"){
cout<<num1*num2;
}
else if (symbol=="/"){
cout<<num1/num2;
}
else{cout<<"Что то пошло не так ";}
}
Собственно, начал изучать c++, решил забацать простенький калькулятор. Пожалуйста, подскажите в чем ошибка и как ее исправить.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Понимаете,
char symbol;
это - один символ, т.е. небольшое число (знаковое или беззнаковое, зависит от конкретного компилятора и настроек).
А "+" - это строка, т.е. указатель на массив символов, по сути - адрес этого самого + в памяти.
Ваше сравнение
symbol=="+"
сравнивает целое число с указателем, о чем вас и предупреждает компилятор.
Если вы хотите (а я думаю, что именно этого вы и хотите) сравнивать значение символа в переменной с символом + - используйте одинарные кавычки:
symbol=='+'