August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
除了支持内置类型和标准库string的I/O之外,iostream库还允许程序员为自己的类型定义I/O操作。例如,考虑一个简单的类型Entry,我们用它来表示电话簿中的一项:
我们可以定义一个简单的输出运算符,以类似初始化代码的形式{"name",number}来打印一个Entry:
一个用户自定义的输出运算符接受它的输出流(的引用)为第一个实参,输出完毕后,返回此流的引用。
对应的输入运算符要复杂得多,因为它必须检查格式是否正确并处理错误:
输入操作返回它所操作的istream对象的引用,可用来检测操作是否成功。例如,当用作一个条件时,is>>c表示“我们从is读取一个char存入c的操作是否成功了?”
is>>c默认跳过空白符,而is.get(c)不会,因此,上面的Entry的输入运算符忽略(跳过)名字字符串外围的空白符,但不会忽略其内部的空白符。例如: ...
Read now
Unlock full access