首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

菜鸟请问:一个C++用来判断输入的函数

2012-02-17 
初学者请教:一个C++用来判断输入的函数为了输入一个介于2个整数之间的数字:如果一次输入错误或者不符合要

初学者请教:一个C++用来判断输入的函数
为了输入一个介于2个整数之间的数字:
如果一次输入错误或者不符合要求,则执行一次循环,再次提醒输入。

void   Howtoplay::InputNums(int   &   num,int   min,int   max)
{
        std::cin> > num;
        while((num <min)||(num> max))
        {
                std::cout < < "输入有误!请重新输入: ";
                std::cin> > num;
        }
}

问题:
1.为什么运行时错误输入一个字符时,会不断循环下去呢?如何解决?
2.为什么输入一个带小数点的数字时,也会出错呢,循环了2遍。如何解决呢?

请大家帮忙想想更好的方法,也就是在错误输入其他字符或者非整数时,虽然出
错了,但不会出现多次甚至死循环下去的现象,谢谢!


[解决办法]
while(!cin.eof() > > num)
{
cin > > num;
if (cin.fail())
{
cin.ingore(1000, '\n ');
cin.clear();
continue;
}

if ((num > = min)||(num < max))
{
break;
}
}

[解决办法]
如果某人键入的不是整数(如“x”),std::cin流进入“失败状态”,并且其后所有的输入尝试都不作任何事情而立即返回。换句话说,程序进入了死循环;
[解决办法]
void InputNums(int & num,int min,int max)
{

while(!(cin > > num))
{

if((num <max)&&(num> min)) break;

cout < < "error,input again: ";
cin.clear();
cin.ignore();

}
}

热点排行