C 程式陷入死迴圈,如何避免

2021-05-05 21:12:11 字數 793 閱讀 8692

1樓:匿名使用者

這是由cin>>method ;這個語句決定的由於定義了method 是int型別,如果遇到cin不是int型別或者越界,則會出現異常,不會賦值給method ,使其保持原值。字元無法被cin接收而一直停留在緩衝區,導致下一次cin時直接從快取讀數,但字元無法讀取結果導致無限迴圈。

可以在continue;前面增加清除輸入緩衝區的函式,如下:

cin.clear();

cin.ignore();

continue;

2樓:匿名使用者

防錯處理是程式設計非常重要的工作.

因此,你在程式設計的時候,就需要考慮所有可能的輸入情況.

把不期望的輸入過濾出來不做處理,或做錯誤處理.只對期望的輸入做處理.

如果你在程式設計之初沒有考慮對輸入做檢查的話,程式就會非你所願的執行,這就是危害.沒有什麼比程式沒有如程式設計師想象的那樣去執行危害更大了.

以你的這個例子來說的話,你獲取到輸入後,就要判斷輸入的是什麼,如果使用者輸入的是數字,那你就正常處理,如果使用者輸入的是其他你不希望的值,那你可以列印一個提示,說,請輸入整數.然後程式返回.等等.

自己多考慮考慮.

3樓:匿名使用者

如果是這個樣子話,你可能比較複雜了,獲得一行字元string中,然後解析輸入的資料是int還是其它型別的

4樓:741852963一

可以在輸入之後判斷一下是數字還是字母(或字元),如果是非數字,跳轉到輸入部分的語句塊,重複輸入一次。思想告訴你,**自己寫。

c語言中程式如for為什麼是死迴圈

for 是一bai 個典型的簡介的死迴圈。解釋如du下 所謂迴圈zhi就是dao讓計算機重複執行一段內 迴圈的核心有兩個容部分 迴圈控制 迴圈體 迴圈控制部分的迴圈結束條件如果永遠成立,將會導致一直迴圈,俗稱 死迴圈 上面的程式 最後的分號,表示迴圈體為空,是空迴圈 括號中的兩個分號之間是放迴圈結束...

無限迴圈和死迴圈的區別,C語言無限迴圈死迴圈區別

無限迴圈和死循復環的相同之處制就是都沒bai有結果值 不同du之處 1 無限迴圈是zhi指程式在執行過程中出現dao的無值結果,它的本質是程式可以正常迴圈,但產生的結果又無數個值 2 死迴圈是指程式在執行過程中產生的錯誤運算結果 導致程式無值判斷,因此他們程式執行結果是不一樣的。c語言無限迴圈 死迴...

筆記本自動修復死迴圈?電腦陷入自動修復死迴圈

步驟 一,進入安全模式,並移除最近安裝的驅動程式 軟體。引導至winre windows recovery environment 可以理解為恢復模式。可以長按開機鍵直到機器斷電,然後再開機,再斷電,重複3 5次,直到進入如下圖的恢復模式。從選擇選項螢幕中,請點選或單擊疑難解答。請點選或單擊高階選項...