我的输出继续附加到上一个输出

时间:2013-05-19 23:12:19

标签: c++ io

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

问题是在输出结果时,它需要前一个并将其添加到下一个结果直到结束。我一直试图解决这个问题,但我无法弄清楚发生了什么!有谁能看到这个问题?

输入:

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

1 个答案:

答案 0 :(得分:0)

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

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

ifstream file("tests.txt");
while(file.good()) {
    file >> input;
    ...
    cout << "PostFix is : " << postFix << endl;
    postFix.clear();
}