我正在进行课堂作业而我正在尝试使用char作为操作符,但IDE一直告诉我它在op中期待分号(返回operand1 op operand2;)。我在这里缺少什么?
Operand1和operand2都是浮点数,char操作仅限于+, - ,*或/.
float evaluatePrefix::evaluatePre(string strExp)
{
strLength = strExp.length();
if (strLength == 1)
return strExp[0];
else
{
char op = strExp[0];
int endFirst = endPre(strExp, 1);
float operand1 = evaluatePre(strExp.substr[1, endFirst]);
int endSecond = strLength - endFirst + 1;
float operand2 = evaluatePre(strExp.substr[endFirst + 1, endSecond]);
//float theAnswer = operand1 op operand2;
return operand1 op operand2;
}
}
答案 0 :(得分:7)
你不能简单地做
char plus = '+';
int result = 2 plus 2;
这不是C ++的工作方式......但你可以使用switch或if语句。
即
if (op == '+') {
return operand1 + operand2;
} else if (op == '-') {
return operand1 - operand2;
} ...