来源:http://blog.vckbase.com/bruceteen/archive/2005/06/29/8952.html
cin.clear()恢复正确标志位cin.ignore流中错误的数据抛弃掉为了进一步查看输入流的状态,可以通过以下代码测试:http://blog.csdn.net/SearchLife/archive/2008/12/10/3491768.aspx
我们定义要输入到的变量是整型,但如果我们输入了英文字母或者汉字,那就会发生错误,cin里有个方法能检测这个错误,就是cin.rdstate();当cin.rdstate()返回0(即ios::goodbit)时表示无错误,可以继续输入或者操作,若返回4则发生非致命错误即ios::failbit,则不能继续输入或操作.而cin.clear则可以控制我们此时cin里对这个问题的一个标识.语发如下:cin.clear(标识符);标识符号为:
goodbit 无错误 Eofbit 已到达文件尾 failbit 非致命的输入/输出错误,可挽回 badbit 致命的输入/输出错误,无法挽回 若在输入输出类里.需要加ios::标识符号
Copyright © 天边蓝