-1

ファイルから文字ごとに数値を読み取っている実数または整数の出力に取り組んでいます。整数を読み取り、'.' に到達するまで整数キューにプッシュし、その後、それを realQueue に入力するように切り替えます。

次に、印刷するときに印刷する必要があります。つまり、Real: 123.4343

しかし、今の出力は実数です: 123. 整数 4343

どういうわけか、while ループまたは if ステートメントが機能していません。エラーが見つからないだけです

問題は、123.4343 が出力されるように出力を修正するにはどうすればよいかということです。

    //if the realQueue is empty, then we just read in an integer, currentState must be 1, in order to print integer
            if(realQueue.empty() || currentState == '1')//implementation of the FSM
            {
                    writeFile <<"Integer:       ";
                    while(!integerQueue.empty())
                    {
                    writeFile <<integerQueue.front();
                    integerQueue.pop();
                    }
            }
            //since the realQueue has values in it, then it must bea real Number
            else
            {
                //currentState = '2';
                // currentState must be == '2', since wwe have a real number to print

                    writeFile<<"Real:           ";
                        //currentState has to be in real mode for it to print out to file
                        while(!integerQueue.empty() && currentState == '2')
                        {
                        writeFile <<integerQueue.front();
                        integerQueue.pop();
                        }
                        // currentState has to be in real mode for it to print out to file
                        while(!realQueue.empty() && currentState == '2')
                        {
                        writeFile <<realQueue.front();
                        realQueue.pop();
                        }

            } 
4

1 に答える 1

1

このループをコミットして、何が起こるかを確認してください。

while(!integerQueue.empty() && currentState == '2') 
{ 
  writeFile <<integerQueue.front(); 
  integerQueue.pop(); 
} 
于 2012-10-05T06:58:37.157 に答える