cin.clean()怎嘛回事?

来源:互联网 发布:linux exec命令符号 编辑:程序博客网 时间:2024/05/17 21:51
cin.clear(); //清除cin流的错误状态C++语句cin.clear();中的clear()是什么函数,原型是? 答:检举将一个出错的流的状态恢复为“好”。但也不完全是,因为它也可以把“好”的流变成“坏”。其默认参数为:ios::goodbit故语句:cin.clear()清除cin流,并设置goodbit状态位。同理,语句:cin.clear(ios::failbit)清除cin流,并设置failbit状态位,该位代表一般可修复的小错误,自然还可以设置其他几个状态位,但普通情况下,很少用到。还是以goodbit位用的最多。由于它是默认参数,所以不需显示传递,故而你最常看到的就是:cin.clear()这句了。

如果输入不是数字! 把错误的输入字符用cin.get()清出输入流,从新再来接受
int golf[5];
for (int i=0;i<5;i++){
  while(!(cin>>golf[i])){
   cin.clear();
   while(cin.get()!='/n') continue;
   count<<"Please enter again";
  }
}