[英]'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.