August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
人们常常会在意很多输出中的微小细节。例如,对一个物理学家来说,1.25(舍入到小数点后两位数字)与1.24670477可能是有很大不同的。而对于一个会计,(1.25)从法律角度看与(1.2467)是不一样的,而与1.25则是根本不同的(在金融文件中,括号有时表示亏损,也就是负值)。作为程序员,我们的目标是令输出尽可能地清晰和接近程序“客户”的期望。输出流(ostream)提供了很多方法格式化内置类型的输出。对于用户自定义类型,则需要由程序员定义适合的<<操作。
对于输出,似乎有数不清的细节、优化的余地和不同的选择需要考虑,对于输入,要考虑的类似问题也不少。例如,用来表示小数点的字符(通常是点或逗号);输出金额数值的方式;输出单词true(或vrai或sandt)而不是数值1来表示真;处理非ASCII字符集(如Unicode)的方式;以及限制读入字符串的字符数目等等。除非你需要使用这些功能,否则它们看起来很无趣。因此,我们将这些内容放在手册和专门的著作中,如Langer的《Standard C++IOStreams and Locales》,Stroustrup的《C++Programming Language》的第38和39章,以及《ISO C++标准》的第22和27节。本书只介绍一些最常用的功能和一般性概念。