August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
下面我们应用这个“标准输入循环”来解决一个实际问题。照例,我们还是通过这个例子来展示有广泛应用范围的设计和编程技术。假定要处理一个温度读数文件,其结构为:
·文件包含若干年份(包含每月的读数)。
·一个年份以“{year”开始,后跟一个整数,表示年份值,如1900,然后以“}”结束。
·一个年份包含若干月份(包含每日的读数)。
·一个月份以“{month”开始,后跟一个三字符形式的月份名,如jan,然后以“}”结束。
·一个读数由一个时间和一个温度值组成。
·一个读数以“(”开始,后跟日期值、小时值和温度值,最后以“)”结束。
例如:
这种格式有点怪,通常结构化文件的格式都有些特别。现在工业界的发展趋势是,结构化文件变得更有规律、更为层次化(如HTML和XML文件)。但现实情况是,我们还是极少能控制需要处理的文件的格式。文件的格式就是这个样子,我们要做的就是正确读取其内容。如果格式非常乱,或文件包含太多错误,我们可以编写一个格式转换程序,将文件转换为更适合我们程序的格式。另一方面,我们通常还可以选择数据的内存表示形式以适应程序的需求,因此我们通常可以选择合适的输出格式,来满足特定的需求和偏好。
假定我们只能接受上述给定的温度读数文件格式。幸运的是,其中的年、月等组成部分都是可以自识别的(这有点像HTML或XML文件)。另一方面,单个读数的格式对合法性检查没有什么帮助。例如,没有什么信息可以帮助我们处理下列情况:用户将日期值和小时值交换;用户使用摄氏度,而程序期望的是华氏度,或者相反。我们必须应对这些情况。 ...
Read now
Unlock full access