我看到這個代碼不尋常的問題不起作用int類型變量而循環一遍又一遍地重複,不問我是否重複。 這個問題剛剛出現,當我把字符不整數。 對於也出現。一個循環,並在int變量字符如我所料
爲什麼要這樣呢? 謝謝
我看到這個代碼不尋常的問題不起作用int類型變量而循環一遍又一遍地重複,不問我是否重複。 這個問題剛剛出現,當我把字符不整數。 對於也出現。一個循環,並在int變量字符如我所料
爲什麼要這樣呢? 謝謝
在讀取不能轉換的用戶輸入後,輸入流處於無效狀態。您需要清空流並調用clear
方法重置流上的錯誤位以恢復正常操作。
如果檢測到輸入不成功(使用輸入流狀態位,通過像good()
或fail()
等方法訪問),你可以使用類似下面的代碼重置流:
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
你把cin在你無法從中提取一個int時處於錯誤狀態,並且沒有恢復。因此,當您嘗試從中提取重複數據流時,數據流仍然處於失敗狀態。你需要檢查數字的失敗(只需使用if(cin >> number))。