來源:http://blog.vckbase.com/bruceteen/archive/2005/06/29/8952.html
cin.clear()恢復(fù)正確標(biāo)志位cin.ignore流中錯(cuò)誤的數(shù)據(jù)拋棄掉為了進(jìn)一步查看輸入流的狀態(tài),可以通過以下代碼測試:http://blog.csdn.net/SearchLife/archive/2008/12/10/3491768.aspx
我們定義要輸入到的變量是整型,但如果我們輸入了英文字母或者漢字,那就會發(fā)生錯(cuò)誤,cin里有個(gè)方法能檢測這個(gè)錯(cuò)誤,就是cin.rdstate();當(dāng)cin.rdstate()返回0(即ios::goodbit)時(shí)表示無錯(cuò)誤,可以繼續(xù)輸入或者操作,若返回4則發(fā)生非致命錯(cuò)誤即ios::failbit,則不能繼續(xù)輸入或操作.而cin.clear則可以控制我們此時(shí)cin里對這個(gè)問題的一個(gè)標(biāo)識.語發(fā)如下:cin.clear(標(biāo)識符);標(biāo)識符號為:
goodbit 無錯(cuò)誤 Eofbit 已到達(dá)文件尾 failbit 非致命的輸入/輸出錯(cuò)誤,可挽回 badbit 致命的輸入/輸出錯(cuò)誤,無法挽回 若在輸入輸出類里.需要加ios::標(biāo)識符號
Copyright © 天邊藍(lán)