本文介绍一下 iostream 库头文件规范。
目录
- 1 规范
- 1.1 基础控制台 I\O:<iostream\>
- 1.2 文件、字符串流对应头文件
- 1.3 其余头文件定位
- 2 各个头文件用途速查表
1 规范
iostream 系列头文件负责实现文本与编码格式之间的转换,同时提供对外置文件的读写能力,整套头文件清单如下:
- <fstream>
- <iomanip>
- <ios>
- <iosfwd>
- <iostream>
- <istream>
- <ostream>
- <sstream>
- <streambuf>
- <strstream>
1.1 基础控制台 I\O:<iostream>
最基础的控制台输入输出只需要引入 <iostream> 头文件:
- 借助
cin / 宽字符版本 wcin读取标准输入,读取规则由 basic_istream 类规定;- 借助
cout / 宽字符版本 wcout输出标准打印内容,输出规则由 basic_ostream 类规定;- 输入、输出共用的格式配置由 basic_ios 统一管理;各类流操纵符(manipulator)依托读写操作修改这些格式参数;
1.2 文件、字符串流对应头文件
- <fstream>:提供文件流类,通过文件名打开磁盘文件,复用一模一样的 iostream 读写语法操作文件;
- <sstream>:用于 std::string 和流数据互相转换(内存字符串流);
- <strstream>:面向老式 C语言字符数组(char*)实现流交互(现已被 sstream 逐步淘汰);
1.3 其余头文件定位
剩下的几个头文件属于 iostream 的
底层支撑组件,普通业务开发几乎不会直接使用,一般只有深度自定义流、开发底层封装工具的高阶开发者才会用到。
2 各个头文件用途速查表
| 头文件 | 核心作用 | 使用场景 |
|---|---|---|
| <iostream> | 标准控制台 cin / cout | 日常打印、键盘输入(最常用) |
| <fstream> | ifstream / ofstream / fstream 文件读写 | 读写本地 txt、二进制文件 |
| <sstream> | stringstream 字符串流 | 字符串拆分、数字字符串互转 |
| <iomanip> | 格式控制操纵符 setw、setprecision 等 | 控制输出精度、对齐、进制 |
| <ios> / <iosfwd> | 流状态、基础类型前置声明 | 底层开发使用 |
| <istream> / <ostream> | 基础输入 / 输出流父类 | 自定义流重载才需要引入 |
| <streambuf> | 流缓冲区底层实现 | 定制内存缓冲、高级改造 |
| <strstream> | 老式 C字符串流 | 老旧项目兼容,新项目禁止使用 |