August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
可以使用Reading类来读取输入,而且更为简单:
基本上,我们还是先检查格式是否合法,如果不合法,我们将文件状态置为fail(),并返回。这允许我们尝试通过其他方式读取信息。另一方面,如果在读取了一些数据后才发现格式错误,就没有了错误恢复的机会,我们只能通过error()退出。
Month的输入操作实现大体相同,只有一点不同:必须读入任意数目的Reading对象,而不是像Reading的>>那样只需读取一组固定个数的值:
month_to_int()将月份的符号表示(如jun)转换为一个0到11之间的整型值,这在后面会继续讨论。需要注意的是,代码中使用了10.10节中给出的end_of_loop()来检测终结符。我们对不合法的和重复的Readings进行计数,计数结果可能对其他人是有用的。 ...