重複の可能性:
キューを正しい順序で出力する
数字を含む 2 つのキューがあり、integerQueue には整数のみが含まれ、realQueue には先頭の '.' が含まれます。次に、次の数字。
整数のみが読み込まれた場合は整数キューを出力する必要がありますが、realqueue にデータが含まれている場合は、前半の integerqueu を出力してから後半の realqueu を出力して、123.234 のような実数を作成する必要があります。
現在、私のコードは実数 1 を出力します。その後、整数を出力します: 2342343
正しい出力が表示されるようにするにはどうすればよいですか?
//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 we 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' && !integerQueue.empty())
{
writeFile <<integerQueue.front()<<realQueue.front();
integerQueue.pop();
realQueue.pop();
}
}