August 2021
Intermediate to advanced
450 pages
6h 57m
Chinese
一个iostream在某个时刻会处于四种状态之一,这些状态的定义来自于<ios>的basic_ios中(见38.4.4节):
如果一个流不在good()状态,对它的任何操作都没有效果,即相当于空操作。一个iostream可以作为一个条件来使用:若iostream的状态为good(),则条件为真(成功)。人们编写从流中读取数据的代码时,习惯于以此为基础:
若读取失败,我们或许可以清除流状态,继续读取:
我们也可以使用异常来处理错误:
例如,我们可以令cin在其状态被设置为bad()时(例如,通过cin.setstate(ios_base::badbit))抛出一个basic_ios::failure:
例如:
我倾向于使用异常来处理那些我不奢望能恢复的iostream错误。这通常意味着捕获的都是一些bad()异常。 ...
Read now
Unlock full access