ファイルから文字ごとに数値を読み取っている実数または整数の出力に取り組んでいます。整数を読み取り、'.' に到達するまで整数キューにプッシュし、その後、それを 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();
}
}