'expected expression' 语句中的错误
'expected expression' error within if statement
我必须用我的数据结构类即时学习C ++。我以前只有Java的经验,这就是为什么我的错误感觉微不足道,但我正在努力弄清楚。我收到"预期表达式"错误,不确定它在告诉我什么。我尝试将我的文字表达式换成 ASCii 代码值之类的东西。错误发生在我的所有 if 语句上。我确实有我需要的所有"#include"语句。感谢您的任何帮助。
stack<double> doublestack;
char *input = new char[255]();
char *token = new char[255]();
cout << "Enter a valid postfix expression" << endl;
cin.getline(input, 255);
token = strtok(input, " ");
while (token != NULL) {
if (token* == '*')
{
double b = doublestack.top();
double a = doublestack.top();
doublestack.pop();
doublestack.pop();
doublestack.push(b * a);
}
else if (token* == '/')
{
double b = doublestack.top();
double a = doublestack.top();
doublestack.pop();
doublestack.pop();
doublestack.push(b / a);
}
else if (token* == '+')
{
double b = doublestack.top();
double a = doublestack.top();
doublestack.pop();
doublestack.pop();
doublestack.push(b + a);
}
else if (token* == '-')
{
double b = doublestack.top();
double a = doublestack.top();
doublestack.pop();
doublestack.pop();
doublestack.push(b - a);
}
else
{
doublestack.push(atof(token));
}
token = strtok(NULL, " ");
}
如果它有助于知道,我正在获得一个后缀表达式并将数字推入堆栈中。当我找到一个操作角色时,我会弹出前两个数字来执行操作。后缀完成后,我应该留下一个数字,这就是后缀表达式的答案。
错误消息如下...
stack1.cpp:24:20: error: expected expression
if (token* == '*')
^
stack1.cpp:32:25: error: expected expression
else if (token* == '/')
^
stack1.cpp:40:25: error: expected expression
else if (token* == '+')
^
stack1.cpp:48:25: error: expected expression
else if (token* == '-')
在这种情况下,a = b
double b = doublestack.top();
double a = doublestack.top();
doublestack.pop();
doublestack.pop();
猜测你想要获取最后一个值(top()),然后将其从堆栈(pop())中删除,然后获取下一个最后一个值,依此类推
相关文章:
- 为什么static_assert错误:即使我传递常量"expression must have a constant value"?
- 错误消息"expected expression"....有人知道它为什么这么说吗?
- C++ 向量加减抛出"expression: vector subscript out of range."错误
- unordered_set .find 方法无法编译的 C++ "expression must have class type"错误
- 如何修复此错误"expected primary expression before 'int'"?
- 如何修复此错误"the value of 'x1' is not usable in a constant expression"?static_assert
- 调用 list.size() 方法给出错误"expression must have class type"
- 为什么我会收到"Expression must have a class type"错误?(C++)
- 让编译器告诉哪些方法不具体,而不是错误'invalid new-expression of abstract class type'
- 为什么我的某些数据成员"expression must be an lvalue or a function designator"收到此错误?
- 如何修复类"Invalid operands to binary expression "类" to "类" "错误 (repl.it)
- 如何修复C++中的'Invalid operands to binary expression'错误
- C++ 中的错误"expression result is unused"
- 递归调用中出现错误"[Error] expression list treated as compound expression in initializer [-fpermissive]"
- 产生错误"expression must be a modifiable lvalue"
- 错误 - "expression must have a class type" - c++
- deque.push_front() 给出错误"expression must have class type"
- C++ 错误" expression must be a modifiable lvalue "
- 提升线程中出现错误"expression cannot be used as a function"?
- 获取错误"Expression: string subscript out of range"