第十七章 文件与 IO
在实际的软件开发中,程序必须要能够持久化地保存数据,或者从外部读取配置文件、解析数据日志。这就离不开输入输出(Input/Output,简称 I/O)操作。
C++ 的标准库提供了一套基于面向对象思想的流(Stream)抽象库。你早就用过的 std::cin 和 std::cout 就是这套体系里专门处理“标准输入输出”(控制台键盘和屏幕)的实例。
而在本章,我们将把这种流式思想扩展到更复杂的对象上:
- 文件流操作:学习如何读取硬盘上的文件,以及如何将数据写回文件(文本读写与二进制读写)。
- 字符串流:将字符串作为一座内存里的“流管道”进行各种格式拼接和数据类型转换的萃取。
- 格式化输出:掌握 C++ 原生流控制符(manipulators),以及 C++20 引入以用来全面吊打传统
printf的大杀器std::format。
通过这套一致的接口,你会发现写文件、写屏幕、写字符串在 C++ 里的代码思路甚至长得一模一样。