2012-10-05 106 views
0

可能重複:
outputting queues in correct order打印隊列以特定的順序

我已經包含數字兩個隊列,in​​tegerQueue只包含整數,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(); 
    } 
} 

回答

1

如果我理解正確的話,在integerQueue包含前的數字「‘和realQueue包含了後面的數字’。」,如果有的話。
所以如果你在realQueue找到任何東西,你有一個實數,否則是一個整數。

對不起?

在這種情況下,你甚至不需要知道currentState
只是打印整數部分

while(!integerQueue.empty()) { 
    writeFile << integerQueue.front(); 
    integerQueue.pop(); 
} 

,然後,如果你有一個實部爲好,打印,只是背後的整數部分:

while(!realQueue.empty()) { 
    writeFile << realQueue.front(); 
    realQueue.pop(); 
}