我正在编写一个将中缀转换为后缀的程序。我从文本文件中读取中缀数据然后转换它。
问题是在输出结果时,它需要前一个并将其添加到下一个结果直到结束。我一直试图解决这个问题,但我无法弄清楚发生了什么!有谁能看到这个问题?
输入:
4
5+7
7*5
输出:
4
457+
457+75*
然后再次打印:
4457+457+75*
我的代码:
int main()
{
stack<char> Stack;
string postFix = "";
const int SIZE = 100;
char input[SIZE];
ifstream file("tests.txt");
file >> input;
do
{
// code
cout<<"PostFix is : " << postFix <<"\n";
file >> input ;
} while( file && file.peek() != EOF);
system("PAUSE");
return 0;
}
答案 0 :(得分:0)
嗯 - 在循环结束时postFix.clear()?
另外,尝试将循环转换为:
ifstream file("tests.txt");
while(file.good()) {
file >> input;
...
cout << "PostFix is : " << postFix << endl;
postFix.clear();
}