作者ephesians (发起钱像乱喷水)
看板Programming
标题Re: 例外处理问题之二
时间Fri Sep 14 04:54:59 2007
※ 引述《[email protected] (大改名片档)》之铭言:
: 假设我在这里 分子输入 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