August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
思考这样一个问题:你如何从一个文件中读取一些测量实验结果,并在内存中将它们呈现出来?这些实验结果可能是从气象站获取的温度数据:
这个数据文件由一个(小时,温度)数值对序列组成。小时的值从0到23,温度为华氏度值。假定文件没有更多的格式,也就是说,这个文件不包含任何特殊的头信息(例如温度读数是从哪里获取的)、值的单位、标点(例如为每对数值加上括号)或者终止符。这是一个最为简单的情形。
我们可以用一个Reading类型来描述温度读数:
有了这样的类型,我们可以按如下方式来读取温度读数:
这是一个典型的输入循环。如上一节所示,istream流ist可以是一个输入文件流(ifstream),也可以是标准输入流cin(的一个别名),或者是任何其他类型的istream。对于这段代码而言,它并不关心这个istream是从哪里获取数据。我们的程序所关心的只是:ist是一个istream,而且数据格式如我们所期望。下一节我们将讨论一个有趣的问题:如何检测输入数据中的错误,以及发现格式错误后该如何处理。 ...