簡體   English   中英

if語句中的“預期表達式”錯誤

[英]'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()),然后獲取下一個最后一個值,依此類推

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM