2 回答

TA貢獻1779條經驗 獲得超6個贊
當cin函數輸入錯誤的時候,cin里面有個函數可以自動檢測到輸入錯誤,若想繼續輸入便要清楚掉這個錯誤。可以利用函數cin.rdstate()函數來讀取錯誤的標識符看看。
#include <iostream>using namespace std;int main(){
int number;
cin>>number;
cout<<"first input"<<endl;
cout<<cin.rdstate()<<endl;
cin>>number;
cout<<"end input!"<<endl;
system("pause");
return 0;}
擴展資料
c++中的cin函數語法
C++中的cin函數和C語言的scanf函數同理,均為從鍵盤中接收輸入內容。
基本格式:cin>>要輸入的內容;
cin函數輸入遇到空格,TAB鍵,回車也會終止輸入
例如:想要輸入zhang san
cin>>str;那么str只會接收zhang這個字符串,遇到空格自動結束輸入。
C++中提供cin.getline(str,50),此時只遇到回車才會結束輸入,那么str中存儲了zhang san這個完整的字符串。

TA貢獻1942條經驗 獲得超3個贊
if(!cin)判斷是否輸入正確,如果輸入錯誤的類型 比如你想輸入 int類型 結果輸入了char 則會出現cin輸入錯誤
fail() 被設定為真 failbit被設定 cin被標記錯誤 不可用( 意思是 出現不匹配 )然后就得用clear()清除錯誤狀態 就是清除錯誤狀態 (也就是把failbit設置為0)然后還得用 while(cin.get()!='\n')
continue;
吸收緩沖區 也就是錯誤字符后面的字符之類的 知道換行符 例如想輸入 123 結果輸入123ab456,就用上面的做法 解決了 發現cin又可用了。
- 2 回答
- 0 關注
- 564 瀏覽
添加回答
舉報