Re: 例外處理問題之二
※ 引述《jiannrong.bbs@bbs.wretch.cc (大改名片檔)》之銘言:
: 假設我在這裡 分子輸入 erer
: 照理說應該要顯示 其他錯誤
: 可是我的卻會變成:
: 輸入分子:erer
: 輸入分母:44/2=22
: 請按任意鍵繼續 . . .
: 請問我哪裡寫錯了呢
: 謝謝
哎......
cin >> numerator;
cin >> denominator;
而你輸入文字,
結果只是造成 inpute failure 啊!
之後印出的結果不合你的預期都算正常,因為錯誤情況在前面早就發生了.
程式沒有寫錯,是因給了不適合的輸入.
Input failure的行為是這樣:
1.由cin讀取輸入置入numerator,但型態不合,忽略numerator的輸入,
輸入游標停在 "erer" 左邊.
cin狀態設為fail.
2.由cin讀取輸入置入denominator,但形態不合,忽略denominator的輸入,
輸入游標還停在 "erer" 左邊.
3.沒有接到任何輸入值的二個數字numerator與denominator相除,
boom!
--
邏輯上打個比方:
p q| p -> q
---+-------------
1 1| 1
1 0| 0
0 1| 1 <--- This case...
0 0| 1 <--- and this.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.210.87
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章