gpt4 book ai didi

c++ - if语句中的“预期表达式”错误

转载 作者:行者123 更新时间:2023-12-02 11:01:55 25 4
gpt4 key购买 nike

我必须通过我的数据结构类即时学习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, " ");
}

如果有帮助,我将获得一个后缀表达式并将这些数字 push 堆栈。找到操作字符后,我将 pop 前两个数字以执行操作。后缀完成后,我应该留下一个数字,这就是后缀表达式的答案。

错误消息如下...
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()),然后获取下一个最后一个值,依此类推

关于c++ - if语句中的“预期表达式”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com