Этот код предназначен для чтения постфиксных проблем из файла и записи ответов в новый файл; Моя ошибка в разделе кода if if if. Я попытался переместить массив символов наверх, и он все еще сохраняется.
void main()
{
ifstream postin("postfix.txt");
ofstream postout("postfixAnswers.txt");
char oper = 'c';
int i = 0;
double number = 0;
while(oper != '$')
{
while(oper != '\n'|| oper != '$')
{
stack operands;
while(oper != ' ' || oper != '\n' || oper != '$')
{
char a[90];
i=0;
oper = postin.get();
do
{
if(oper!=' ')
{
a[i]= oper;
i++;
oper = postin.get();
}
}while(oper != ' ' && oper != '\n');
if(isOperand(a))
{
double number = atof(a);
operands.Push(number);
}
else
{
operands.Pop(number);
double b = number;
operands.Pop(number);
double a = number;
if(a[0] == '+')
{
operands.Push(a+b);
}
else if(a[0] == '-')
{
operands.Push(a-b);
}
//DIV by ZERO exception
else if(a[0] == '/')
{
operands.Push(a/b);
}
else
{
operands.Push(a*b);
}
}
}
operands.Pop(number);
postout << number<< endl;
operands.~stack();
}
}
postin.close();
postout.close();
}