0

我正在编写一个将中缀转换为后缀的程序。我从文本文件中读取中缀数据然后转换它。

问题是在输出结果时,它将前一个结果添加到下一个结果中直到结束。我一直在尝试解决这个问题,但我无法弄清楚发生了什么!任何人都可以看到问题吗?

输入:

    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;
}
4

1 回答 1

0

嗯 - postFix.clear() 在循环结束?

另外,尝试将循环转换为:

ifstream file("tests.txt");
while(file.good()) {
    file >> input;
    ...
    cout << "PostFix is : " << postFix << endl;
    postFix.clear();
}
于 2013-05-20T01:01:40.097 回答