c++循环以及cin.fail()这个语句的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 20:01:34
先看一个这个程序
#include <iostream.h>
int main()
{
int c;
while(1)
{
cin >> c;
if (cin.good())
{
return c;
break;
}
if (cin.fail())
cout <<"请重新输入:" ;
}
}

当输入字母的时候会成为一个无限循环了,这该怎么解决呢,或者你有什么好的办法,能保证输入的东西为一个数字的时候,返回该数字。如果不是数字,能够重新输入。

#include <iostream.h>
int main()
{
int c;
while(1)
{

cin >> c;
if (cin.good())
{
return c;

break;
}
if (cin.fail())
{
cout <<"请重新输入:" ;

}
cin.clear(); //修复输入流
cin.ignore(); //取走刚才流中的字符
}
}