0

infix を postfix に変換するプログラムを書いています。テキストファイルから中置データを読み込んで変換します。

問題は、結果を出力するときに、前の結果を取得して、最後まで次の結果に追加することです。これを修正しようとしていますが、何が起こっているのかわかりません! 誰でも問題を見ることができますか?

入力:

    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 に答える