我有两个包含数字的队列,integerQueue只包含整数,realQueue包含开头'.‘。然后是下面的数字。
如果只读取了整数,则需要打印整数队列,但如果realqueue中有数据,则需要打印出前半整数,然后再打印出下半年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();
}
}发布于 2012-10-05 08:30:06
如果我正确理解,integerQueue包含“.”之前的数字,而realQueue包含“.”之后的数字(如果有的话)。
因此,如果在realQueue中找到任何内容,则有一个实数,否则为整数。
对,是这样?
在这种情况下,您甚至不需要知道currentState
只需打印整数部分
while( !integerQueue.empty() ) {
writeFile << integerQueue.front();
integerQueue.pop();
}然后,如果您也有一个真实的部分,则在整数部分后面打印:
while( !realQueue.empty() ) {
writeFile << realQueue.front();
realQueue.pop();
}https://stackoverflow.com/questions/12741405
复制相似问题