error LNK2001: unresolved external symbol "class std::basic_string,class std::allocator
该程序是将中缀转为后缀形式,编译老出现标题上的错误,大家帮我看看啊
#include<iostream>
#include<string>
#include<cassert>
using namespace std;
#include<stack>
string RPN(string exp);
int main()
{
string exp;
cout<<"NOTE:enter# for infix expression\n";
for( ; ; )
{
cout<<"enter expression\n";
getline(cin,exp);
if(exp=="#")break;
cout<<"RPN expression is :"<<RPN(exp)<<endl;
}
return 0;
}
string RNP(string exp)
{
char token,
toptoken;
string RPNEXP;
stack<char> opstack;
const string BLANK=" ";
for(int i=0;i<exp.length();i++)
{
token=exp[i];
switch(token)
{
case' ':break;
case'(':opstack.push(token);
break;
case')':for( ; ; )
{
assert(!opstack.empty());
toptoken=opstack.top();
opstack.pop();
if(toptoken=='(')break;
RPNEXP.append(BLANK+toptoken);
}
break;
case'+':
case'-':
case'*':
case'/':for( ; ; )
{
if(opstack.empty()||opstack.top()=='('||(token=='*'||token=='/')
&&(opstack.top()=='-'||opstack.top()=='+'))
{opstack.push(token);
break;
}
else{
toptoken=opstack.top();
opstack.pop();
RPNEXP.append(BLANK+toptoken);
}
}
break;
default:RPNEXP.append(BLANK+token);
}
}
for( ; ; )
{
if(opstack.empty())break;
toptoken=opstack.top();
opstack.pop();
if(toptoken!='(')
{
RPNEXP.append(BLANK+toptoken);
}
else{
cout<<"*** Error in infix expression ***\n";
break;
}
}
return RPNEXP;
}