根据队列内容(if 语句)确定数字是实数还是整数
decide if a number is real or integer, based on queues contents (if statements)
我正在逐个字符地从文件中读取数据,在读取结束时,我需要能够打印出该值是实数还是整数。
我已经使用 get() 读取了数据,并将它们存储到 2 个不同的队列中,如果第一部分是 integerQueue,如果读入了 '.,则将其余数据切换到 realQueue。然后相应地打印出来。
打印出现问题。只是不断将所有内容标记为整数:然后是正确的值。
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();
}
}
第
10 行:if( temp == '.')
- 您正在读取进入这部分代码的第一个字符,而不是读取的最后一个字符(以及最终会使 while 循环中断的字符)。您应该检查 temp2 是否等于".",而不是 temp。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- 打印数字图案
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 如何检查一个c++字符串中有多少相同的字符/数字
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 将数字打印成文字
- 根据队列内容(if 语句)确定数字是实数还是整数
- 如何反转实数的数字