Re: [課業] 程設重點提示

看板NTUE-CS100作者 (mat)時間18年前 (2007/11/19 23:37), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/5 (看更多)
關於老王要求輸入文字後 程式不能爆炸的簡易版解決辦法 先講原理 int x=0; cin >> x; //假設這時候user輸入文字a //餵cin吃a,因為x是整數,cin會拒絕。 //拒絕後cin幹了兩件事 //1. cin.fail()會傳回true,表示從鍵盤讀取失敗 //2. 程式接下來的cin全部失效 // //所以要開個if(cin.fail()){}來處理讀取失敗後的情況 sample code =============================== #include<iostream> using namespace std; int main(){ int x=0; cout << "請輸入一個整數:"; cin >> x; if(cin.fail()){ cout << "error!" << endl; //讀取失敗 cin.clear(); //clear() 把錯誤訊息清掉,cin才能恢復功能 cin.ignore(); //ignore() Buffer裡面可能還有垃圾,清乾淨 // 下次cin才能讀到正確的值。 }else{ cout << "get number! x=" << x << endl; } return 0; } ============================== -- -- P_Mat <無名個人版> bbs.wretch.cc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.15.109 ※ 編輯: chchwy 來自: 203.68.15.109 (11/19 23:41)

11/20 00:11, , 1F
建中哥~酷! 那個第四章也順便一下吧~哈
11/20 00:11, 1F

11/21 02:44, , 2F
謝~~~~~~~~~~Y
11/21 02:44, 2F
文章代碼(AID): #17GQt8b0 (NTUE-CS100)
文章代碼(AID): #17GQt8b0 (NTUE-CS100)