首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按特定顺序打印队列

按特定顺序打印队列
EN

Stack Overflow用户
提问于 2012-10-05 07:15:27
回答 1查看 433关注 0票数 0

可能重复: outputting queues in correct order

我有两个包含数字的队列,integerQueue只包含整数,realQueue包含开头'.‘。然后是下面的数字。

如果只读取了整数,则需要打印整数队列,但如果realqueue中有数据,则需要打印出前半整数,然后再打印出下半年realqueu,使实数类似于123.234。

当前,我的代码将打印真正的1.然后它将打印整数: 2342343

如何解决这个问题,以便显示正确的输出?

代码语言:javascript
复制
//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();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2012-10-05 08:30:06

如果我正确理解,integerQueue包含“.”之前的数字,而realQueue包含“.”之后的数字(如果有的话)。

因此,如果在realQueue中找到任何内容,则有一个实数,否则为整数。

对,是这样?

在这种情况下,您甚至不需要知道currentState

只需打印整数部分

代码语言:javascript
复制
while( !integerQueue.empty() ) {
    writeFile << integerQueue.front();
    integerQueue.pop();
}

然后,如果您也有一个真实的部分,则在整数部分后面打印:

代码语言:javascript
复制
while( !realQueue.empty() ) {
    writeFile << realQueue.front();
    realQueue.pop();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12741405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档