Skip to content

第十七章 文件与 IO

在实际的软件开发中,程序必须要能够持久化地保存数据,或者从外部读取配置文件、解析数据日志。这就离不开输入输出(Input/Output,简称 I/O)操作。

C++ 的标准库提供了一套基于面向对象思想的流(Stream)抽象库。你早就用过的 std::cinstd::cout 就是这套体系里专门处理“标准输入输出”(控制台键盘和屏幕)的实例。

而在本章,我们将把这种流式思想扩展到更复杂的对象上:

  1. 文件流操作:学习如何读取硬盘上的文件,以及如何将数据写回文件(文本读写与二进制读写)。
  2. 字符串流:将字符串作为一座内存里的“流管道”进行各种格式拼接和数据类型转换的萃取。
  3. 格式化输出:掌握 C++ 原生流控制符(manipulators),以及 C++20 引入以用来全面吊打传统 printf 的大杀器 std::format

通过这套一致的接口,你会发现写文件、写屏幕、写字符串在 C++ 里的代码思路甚至长得一模一样。