Skip to Content
C++语言导学(原书第2版)
book

C++语言导学(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
Pearson
Content preview from C++语言导学(原书第2版)

10.5 用户自定义类型的I/O

除了支持内置类型和标准库string的I/O之外,iostream库还允许程序员为自己的类型定义I/O操作。例如,考虑一个简单的类型Entry,我们用它来表示电话簿中的一项:

我们可以定义一个简单的输出运算符,以类似初始化代码的形式{"name",number}来打印一个Entry:

一个用户自定义的输出运算符接受它的输出流(的引用)为第一个实参,输出完毕后,返回此流的引用。

对应的输入运算符要复杂得多,因为它必须检查格式是否正确并处理错误:

输入操作返回它所操作的istream对象的引用,可用来检测操作是否成功。例如,当用作一个条件时,is>>c表示“我们从is读取一个char存入c的操作是否成功了?”

is>>c默认跳过空白符,而is.get(c)不会,因此,上面的Entry的输入运算符忽略(跳过)名字字符串外围的空白符,但不会忽略其内部的空白符。例如: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

软件开发实践:项目驱动式的Java开发指南

软件开发实践:项目驱动式的Java开发指南

Raoul-Gabriel Urma, Richard Warburton
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Python机器学习案例精解

Python机器学习案例精解

Posts & Telecom Press, Yuxi (Hayden) Liu

Publisher Resources

ISBN: 9787111633280