August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
在10.5节中,我们学习了如何读写文件。但是,随后就学习了更为深入的错误处理相关内容(10.6节),因此输入循环还是最初的简单地读取一个文件,从头读到尾的方式。这个假定是合理的,因为我们通常会对每个文件进行独立检查,看其是否有效。但是,我们通常是边读边检查的,下面给出了一个通用的解决策略,假定ist是一个输入流:
也就是说,我们读入一组值,将其保存到变量中,当无法再读入更多值的时候,需要检查流的状态,看是什么原因造成的。类似10.6节中的内容,我们可以对这段代码稍加改进,使输入流在发生错误时抛出一个failure异常,以免我们需要不断检查发生的故障。
我们也可以指定一个字符作为终结符:
如果不想要一个特别的终结符,即只接受文件尾作为输入的结束,只需简单地将error()调用之前的检测语句去掉即可。但是,如果文件包含嵌套结构,那么使用终结符是很有用的,例如,文件由每月的读数组成,每月的读数是由每天读数组成的,而每天的读数是由每小时读数组成的,等等。因此在后面的讨论中都假定使用终结符。 ...