#include <iostream>
#include <stack>
#include <string>
#include <sstream>
using namespace std;
stack<char> aStack;
stringstream result;
stack<char> operand1;
stack<char> operand2;
stringstream &postfixExp(string ch){
for(int i =0; i< ch.length(); i++)
{
if(ch[i]== '1' || ch[i]== '2' || ch[i]== '3' || ch[i]== '4' || ch[i]== '5' || ch[i]== '6' || ch[i]== '7' || ch[i]== '8' || ch[i]== '9' || ch[i]== '0' )
{
aStack.push(ch[i]);
}
else if( ch[i]== '+')
{
operand2.push(aStack.top());
aStack.pop();
operand1.push(aStack.top());
aStack.pop();
result << ( operand1.top() + operand1.top());
}
}
return result;
}
int main()
{
string postfix = " 2+3";
stringstream* answer = &postfixExp(postfix);
cout << "Result = " << answer->str() << endl;;
return 0;
}
大家好,有人知道我的代码有什么问题吗?我没有看到来自编译器的任何错误消息。但是,当我运行它时它崩溃了。
我很难显示我从函数中得到的结果。一开始想用栈函数,但是想不出怎么把值传给main函数并显示出来。
然后我正在考虑改用 stringstream 函数。不幸的是,我仍然不知道如何显示相应的结果
我想知道是否有人可以告诉我代码中的哪一部分有问题,或者是否有更好的方法来显示函数的结果,而不是使用 stringstream 或 stack
非常感谢!