2012-10-05 73 views
-1

正在输出一个实数或整数 我正在逐个字符地从一个文件读取数字字符。它将读取一个整数,并将其整数推到integerQueue中,直到达到'。',然后它将切换到将其输入到realQueue中。以正确的顺序输出队列

然后当我打印,它需要打印出来,即实: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(); 
         } 

      } 
+0

什么问题? – CrazyCasta

+0

如何正确打印123.4242 – user1050632

回答

1

尝试comminting这个循环,看看会发生什么。

while(!integerQueue.empty() && currentState == '2') 
{ 
    writeFile <<integerQueue.front(); 
    integerQueue.pop(); 
} 
+0

它打印出真实的:。和整数:1234242所以它没有把它假设去的时期 – user1050632

+0

那不是你回答问题的方式。解释解决方案,提供更多参考资料和正确的代码。那是怎么工作的。 –