0

我正在逐个字符地从文件中读取数据,在读取结束时,我需要能够打印出该值是实数还是整数。

我已经用 get() 读入了数据,并将它们存储到 2 个不同的队列中,如果第一部分是 integerQueue,如果是 '.' 被读入,然后将剩下的数据切换到 realQueue 中。然后相应地打印出来。

印刷有问题。只是将所有内容标记为 Integer: 然后是正确的值。

else if(isdigit(temp) || temp == '.')
    {
            integerQueue.push(temp);
            char temp2 = readFile.get();
            while(isdigit(temp2))
            {
                integerQueue.push(temp2);
                temp2 = readFile.get();
            }
            if( temp == '.')
            {
                realQueue.push(temp);
                temp2 = readFile.get();
                while(isdigit(temp2))
                    {
                        realQueue.push(temp2);
                        temp2 = readFile.get();
                    }
            }
            if(realQueue.empty())
            {
            writeFile <<"Integer:       ";
                while(!integerQueue.empty())
                {
                writeFile <<integerQueue.front();
                integerQueue.pop();
                }
            }
            else
            {
                writeFile<<"Real:       ";
                while(!integerQueue.empty())
                {
                writeFile <<integerQueue.front();
                integerQueue.pop();
                }
                while(!realQueue.empty())
                {
                writeFile <<realQueue.front();
                realQueue.pop();
                }
            }
4

1 回答 1

1

第 10 行:if( temp == '.')-您正在读取进入这部分代码的第一个字符,而不是读取的最后一个字符(以及最终会使 while 循环中断的字符)。您应该检查 temp2 是否等于 '.',而不是 temp。

于 2012-09-30T22:37:00.330 回答