精品课

深入学习C++ IO流与Locale

C++ IO 流的整体框架与功能划分

每个组成部分的具体功能、实现细节与如何扩展

结合新的C++语言工具实现更复杂的功能

  • 讲师:李伟

 对课程有疑问? 点击视频立即观看课程介绍!

课程服务

至少11个月

作业批改

助教1v1批改

课程有效期

365天

课程时长

34.8 h

¥499¥599.00

限时特价剩余名额:34个 
更多信息添加客服咨询,请备注【C++IO】
请确认
X
深入学习C++ IO流与Locale 您已经是《深入学习C++ IO流与Locale》-学员,是否购买最新一期?

i提示:

1. 您的《深入学习C++ IO流与Locale》-暂未到期,可直接学习

2. 针对以上信息如有问题,您可联系工作人员进行咨询

购买最新一期
课程介绍 课程大纲 学习服务 售前疑问
¥499 ¥599.00
本课程包括:
3个月群内答疑,讲师助教及时解答
课程有效期为1年,建议合理规划学习
课程配有作业练习,助教一对一批改
班主任带班,严格督学,告别拖延
根据学习情况颁发结业证书、优秀学员证书

李伟

美国微软高级工程师,清华大学博士。曾先后在百度自然语言处理部机器翻译组负责线上系统,在微软亚洲工程院从事Bing搜索的相关开发。近20年C++开发经验,出版了《C++模板元编程实战》《动手打造深度学习框架》等书籍;发布了《C++基础与深度解析》《单例九品》视频课程,受到了广大读者与同学的好评。

IO流是C++中非常重要的组成部分。每个C++的使用者都免不了同IO流打交道,而几乎每个人学习C++时的第一个程序都涉及到IO流。但另一方面,对C++IO流的讨论非常少,以至于大部分C++的使用者都停留在“会用IO流”,但很少有人能够用好IO流。

作为一个相对复杂而完善的组件,IO流包含了很多部分,同时其每一部分都可以进行扩展,从而实现更加复杂的功能:比如,可以通过对流缓冲区类扩展,以支持数据压缩与解密;可以对locale扩展,以提供翻译国际化支持等功能。这些功能虽然已经存在了较长时间,但由于缺乏系统性地学习与了解,很多C++的使用者要么不知道,要么用不好:不得不借助其它工具以实现类似的功能。学好C++IO流,就可以更好、更完善地使用这项工具进行日常的程序开发。

另一方面,C++IO流从首个C++标准开始引入,到目前为止已经存在了1/4个世纪。其中虽然随着标准的演进有了功能上的增强,但其整体框架并没有很大调整。学习C++IO流,一方面可以从框架设计的角度来学习好的框架是如何设计的;另一方面可以看到随着技术的提升,对于一个相对较早的框架存在何种改进的空间——这对程序体系结构设计、框架设计有很好的借鉴作用。

课程目标

  • 了解C++IO流的整体框架与功能划分
  • 了解每个组成部分的具体功能、实现细节与如何扩展
  • 学习结合新的C++语言工具实现更复杂的功能(如国际化、流同步等)

课程亮点

  • 市面上屈指可数的深入讨论C++IO流的课程

  • 分析C++IO流中的每个组件,同时讨论相应的扩展方法,使得同学们对C++IO流有全面而深入的认识

  • 讨论IO流中新包含的内容,如输入同步流、文本格式化库等

  • 讨论现有实现与标准中的bug,让大家在使用IO流的过程中做到心中有数、得心应手

课程大纲

  • 第1章:IO流基础

    本章讨论IO流的基础知识,从使用者的角度来介绍IO流能干什么以及如何调用。通过本章的学习,读者应当对IO流的使用有一个全面的认识。

  • 第2章:IO流架构

    在第一章的基础上,本章将深入IO流的内部,讨论其中包含的组件以及每个组件的上下文细节。这一章偏理论一些,但是后续IO流扩展的基础。

  • 第3章:IO流高级用法

    在上一章的基础上,本章将讨论IO流的扩展细节。这一章分成了5个主题,其中前4个主题由浅入深分别讨论了IO流4个方面的扩展方法,而第5节则可以视为一个综合性的应用,我们会看到标准库如何结合若干扩展方法实现同步流。

  • 4.第四章:国际化与本地化

    IO流的主要功能是对象的格式化与解析,但完成这一点与文化习俗息息相关:比如同一个数字,对于不同国家的文本表示形式也会有所区别。IO流使用locale与facet对文化习俗进行封装,并通过国际化与本地化对不同的文化习俗进行支持。本章将引入国际化与本地化的概念,讨论从操作系统到程序的不同层级对国际化与本地化的支持。

点击此处查看完整目录

课程适合谁学习

  • 有一定C++基础,希望深入到IO流的细节的同学
  • 企业中从事底层平台的开发与维护人员
  • 对输入输出与国际化感兴趣的工程师
  • 有志于为C++标准做出贡献或改进的同学

基础&设备要求

  • 编程能力: C++
  • 基础知识: C++基本语法,建议首先学习《C++基础与深度解析》课程
  • 硬性要求: 一台安装了Linux开发环境的电脑,推荐Ubuntu

全方位的学习服务

个性化增值服务,学习有保障更高效

  • 作业批改 助教1V1批改作业,定期针对作业中的“通病”进行点评

  • 结业证书 本课程将根据作业完成情况评选结业学员及优秀学员,颁发证书

  • 实时答疑 讲师和助教微信群答疑,及时解决大家遇到的问题

  • 班班督学 班主任全程带班,不定时“关照”未交作业的同学,克服拖延

课程相关问题请咨询客服

添加时请备注【C++ IO】

点击查看
课程大纲
点击了解
学习服务
  • 第2章: IO流基础 10节课程·1次作业·9小时57分钟

    本章讨论 IO 流的基础知识,从使用者的角度来介绍 IO 流能干什么以及如何调用。通过本章的学习,读者应当对 IO 流的使用有一个全面的认识。

  • 2:【课件】IO流基础
  • 第1节: 字符编码

  • 1小时55分钟 免费 3:【视频】字符编码
  • 第2节: 输入与输出

  • 1小时8分钟 免费 4:【视频】输入与输出
  • 第3节: 格式化输入输出

  • 1小时22分钟 免费 5:【视频】格式化输入输出
  • 第4节: 流状态

  • 54分钟 6:【视频】流状态
  • 第5节: 文件输入输出

  • 59分钟 7:【视频】文件输入输出
  • 第6节: 内存内部的输入输出

  • 7分钟 8:【视频】内存内部的输入输出
  • 第7节: 非格式化输入输出

  • 12分钟 9:【视频】非格式化输入输出
  • 第8节: 流位置与流同步

  • 1小时23分钟 10:【视频】流位置与流同步
  • 第9节: 文本格式化库

  • 1小时52分钟 11:【视频】文本格式化库
  • 第10节: 本章作业

  • 12-1:【附件】第二章作业
  • 12-2:【作业】第二章
  • 12-3:【文档】第二章作业解析
  • 第3章: IO流架构 6节课程·1次作业·5小时38分钟

    在第一章的基础上,本章将深入IO流的内部,讨论其中包含的组件以及每个组件的上下文细节。这一章偏理论一些,但是后续 IO 流扩展的基础。

  • 13:【课件】IO流架构
  • 第1节: 流类

  • 1小时41分钟 14:【视频】stream classes
  • 第2节: 流缓冲区类

  • 1小时42分钟 15:【视频】stream buf class
  • 第3节: 字符类型与字符traits

  • 37分钟 16:【视频】char and char traits
  • 第4节: 流迭代器与流缓冲区迭代器

  • 57分钟 17:【视频】stream and stream buf iterator
  • 第5节: 额外的流存储与流回调

  • 40分钟 18:【视频】stream storage and call back
  • 第6节: 作业

  • 19-1:【附件】第三章作业
  • 19-2:【作业】第三章
  • 19-3:【文档】第三章作业解析
  • 第4章: IO流高级用法 6节课程·1次作业·8小时42分钟

    在上一章的基础上,本章将讨论 IO 流的扩展细节。这一章分成了5个主题,其中前4个主题由浅入深分别讨论了 IO 流 4 个方面的扩展方法,而第 5 节则可以视为一个综合性的应用,我们会看到标准库如何结合若干扩展方法实现同步流。

  • 20:【课件】IO流高级用法
  • 第1节: 自定义类型的输入输出

  • 33分钟 21-1: 【视频】Customize IO operators -- basic implementation
  • 1小时39分钟 21-2: 【视频】Customize IO operators -- improve 1
  • 45分钟 21-3:【视频】 Customize IO operators -- improve 2
  • 第2节: 自定义操纵符

  • 36分钟 22:【视频】Cutomize manipulator
  • 第3节: 扩展流的功能

  • 55分钟 23-1:【视频】Stream extension -- with External stream storage
  • 1小时13分钟 23-2:【视频】Stream extension -- with derivation
  • 第4节: 增加流缓冲的功能

  • 43分钟 24-1:【视频】 extend streambuf class -simple stream buffer class
  • 1小时15分钟 24-2:【视频】 extend streambuf class -with real buffer
  • 第5节: 同步流实现分析

  • 59分钟 25:【视频】osyncstream analysis
  • 第6节: 作业

  • 26-1:【附件】第四章作业
  • 26-2:【作业】第四章
  • 26-3:【文档】第四章作业解析
  • 第5章: 国际化与本地化 5节课程·1次作业·2小时59分钟

    IO 流的主要功能是对象的格式化与解析,但完成这一点与文化习俗息息相关:比如同一个数字,对于不同国家的文本表示形式也会有所区别。IO 流使用 locale 与 facet 对文化习俗进行封装,并通过国际化与本地化对不同的文化习俗进行支持。本章将引入国际化与本地化的概念,讨论从操作系统到程序的不同层级对国际化与本地化的支持。

  • 27:【课件】国际化与本地化
  • 第1节: 国际化与本地化介绍

  • 16分钟 28:【视频】introduction of internationalization
  • 第2节: 文化习俗

  • 14分钟 29:【视频】cultural customs
  • 第3节: locale 概述

  • 38分钟 30-1:【视频】locale introduction -- locale and cpp communication
  • 55分钟 30-2:【视频】locale introduction -- from system to programs
  • 第4节: locale 对象的构造与使用

  • 55分钟 31:【视频】locale object
  • 第5节: 作业

  • 32-1:【作业】第五章
  • 32-2:【文档】第五章作业解析
  • 第6章: 标准 facets 7节课程·1次作业·5小时53分钟

    IO 流除了提供了 locale 与 facet 这样的工具来支持国际化与本地化外,还提供了若干标准的模块对文化习俗的数个方面进行支持,这些模块可以支持诸如数值、货币值等对象的格式化与解析——使得整个过程符合当地文化习俗。这个模块甚至还提供了一个封装,以支持输出消息的翻译,本章会讨论 C++ 中支持的这些标准 facet。

  • 33:【课件】标准facets
  • 第1节: ctype 类别 facets

  • 47分钟 34-1:【视频】ctype facet
  • 1小时4分钟 34-2:【视频】codecvt facet
  • 第2节: collate facet

  • 24分钟 35:【视频】collate facet
  • 第3节: messages facet

  • 1小时0分钟 36:【视频】messages facet and gettext
  • 第4节: numeric 类别 facets

  • 41分钟 37:【视频】numeric factes
  • 第5节: monetary 类别 facets

  • 46分钟 38:【视频】monetary facets
  • 第6节: time 类别 facets

  • 1小时8分钟 39:【视频】time facets
  • 第7节: 作业

  • 40-1:【作业】第六章
  • 40-2:【文档】第六章作业解析
  • 第7章: 自定义 facet 5节课程·1次作业·1小时24分钟

    除了标准 facet 外,我们还可以自己定义新的 facet 并将其纳入现有的 IO 流体系,以支持更多方面文化习俗相关的格式化与解析。比如:我们可以定义一种 facet,来描述对于“地址”这种信息在不同的文化下要如何输出。本章将以地址信息为例讨论 facet 的自定义与扩展。

  • 41:【课件】自定义facet
  • 第1节: facet 的标识

  • 40分钟 42:【视频】the facet identifier
  • 第2节: locale中的 facet 管理

  • 17分钟 43:【视频】facets management in locale
  • 第3节: 修改现有的 facet

  • 2分钟 44:【视频】modify existing facets
  • 第4节: 定义新的 facet 家族

  • 23分钟 45:【视频】define new facet family
  • 第5节: 作业

  • 46-1:【作业】第七章
  • 46-2:【文档】第七章作业解析

课程讨论区

已累计讨论26495个问题

课程配备专属讨论区,不仅有讲师、助教全程答疑,更能与同学们交流讨论,在思维碰撞中加深理解

在课程中随想随问,同学们的问题也可能启发到你

在课程讨论区,和684位同学一起探讨更多问题···

作业批改

已累计批改4951份作业

助教一对一批改作业,定期针对作业中的问题进行评讲

结业证书

课程根据作业完成情况评选结业学员及优秀学员,颁发证书

优秀学员更能获得额外购课优惠

班班督学

班班、助教、讲师全程带班,日常答疑解惑

FAQ

1、课程可以试听吗?

可以,您可以联系客服领取试听内容,根据试听的效果决定是否报名。

2、报名课程后,如果不满意,可以退款吗?

我们承诺: 报名后7天内且学习进度停留在第一章节的内容可以无条件全额退款,若您的学习进度超过第一章或报名时间超过7天将不再支持退款哦。课好不好,学了就知道了!

3、报名课程的费用可以开发票吗?

深蓝学院所有课程都可以开具发票。您可以登录深蓝学院官网(https://www.shenlanxueyuan.com),进入个人“账户中心”,在线申请。

4、报名后怎么开始学习呢?

PC端:登录深蓝学院官网(https://www.shenlanxueyuan.com),进入“个人中心”或“我的课程” 的课程即可开始学习。课程中包含讲师讲解的视频、课件、代码、作业及其它学习资料。建议在PC端学习体验更好。

如果想缓存视频,可下载深蓝学院APP。

5、可以跟讲师直接交流吗?

报名课程后添加课程对应的班主任微信,由其邀请加入微信答疑群。在答疑群内,您可以直接跟讲师和其他同学讨论交流。

报名后在对应的课程详情页,可查看对应的班主任微信。

6、学习形式和学习周期是怎样的?

为保证学习质量方便同学们反复观看,本课程采用录播形式。建议同学们登录深蓝学院PC端官网体验更佳。

7、课程有有效期吗?

为了督促同学们学习,保证学习效率,学院的课程有效期均为一年,当课程有效期截止后将不再支持观看视频、下载课件等课程服务及操作。若同学们依旧想观看视频和下载课件,建议可选择续费本课程。需要提醒大家的是,课程答疑、作业批改&讲评等课程相关服务期从报名加入课程后开始计算至少保证三个月。

8、作业会提供参考答案吗?

不提供参考答案。当每章作业截止提交后,会解锁作业思路讲解。我们希望引导大家培养独立思考的习惯和敢于动手实践的勇气,以便尽快适应实际工作中解决问题的模式。做作业过程中,如果有任何困惑和问题,可以在课程讨论区和交流群内提问解决。

X

课程预览

深入学习C++ IO流与Locale