emettere le code nell’ordine corretto

Lavorando sull’output di un numero reale o di un numero intero sto leggendo un numero carattere per carattere da un file. Legge un numero intero e lo inserisce nell’interoQueue fino a quando non raggiunge un ‘.’, Quindi passerà all’input in un realQueue.

Quindi, quando stampo, è necessario stampare cioè Real: 123.4343

Ma in questo momento l’output è Real: 123. Numero intero 4343

In qualche modo il mio ciclo temporale o la mia istruzione if non sta facendo il suo lavoro. Non riesco a trovare il mio errore

la domanda è, come posso risolvere il mio output in modo che stampi 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(); } } 

Prova a cancellare questo loop e vedere cosa succede.

 while(!integerQueue.empty() && currentState == '2') { writeFile <