Input/output library
来自cppreference.com
< cpp
C++包括两个输入/输出库:一个现代的,基于流的I/O库和一套标准的C风格的I/O函数.
目录 |
[编辑] 基于流的I/O
基于数据流的输入/输出库是围绕着抽象的输入/输出设备。这些抽象设备允许同样的代码来处理面向文件,内存流或自定义的适配器设备(比如这些设备在数据传输中可以执行自定义的操作(如压缩))的输入/输出.
大部分类都是模板类,所以它们可以适用于任何基本类型。下面以最常见的基本字符类型(char和wchar_t)为例展示一些类定义。这些类按照下面的层次组织:
抽象 | |
| 定义于头文件
<ios> | |
| 管理格式化标签和输入/输出异常 (类) | |
| 管理任意流缓冲 (类模板) | |
| 定义于头文件
<streambuf> | |
| 抽象无修饰设备 (类模板) | |
| 定义于头文件
<ostream> | |
| 包装给定的抽象设备( std::basic_streambuf ) 并提供高级输出接口 (类模板) | |
| 定义于头文件
<istream> | |
| 包装给定的抽象设备( std::basic_streambuf ) 并提供高级输入接口 (类模板) | |
| 包装给定的抽象设备( std::basic_streambuf ) 并提供高级输入/输出接口 (类模板) | |
文件 I/O 实现 | |
| 定义于头文件
<fstream> | |
| 实现无修饰文件设备 (类模板) | |
| 实现高级文件流输入操作 (类模板) | |
| 实现高级文件流输出操作 (类模板) | |
| 实现高级文件流输入/输出操作 (类模板) | |
字符串 I/O 实现 | |
| 定义于头文件
<sstream> | |
| 实现无修饰文字符串设备 (类模板) | |
| 实现高级字符串流输入操作 (类模板) | |
| 实现高级字符串流出操作 (类模板) | |
| 实现高级字符串流输入/输出操作 (类模板) | |
数组 I/O 实现 | |
| 定义于头文件
<strstream> | |
| (弃用) |
实现无修饰字符数组设备 (类) |
| (弃用) |
实现字符数组输入操作 (类) |
| (弃用) |
实现字符数组输出操作 (类) |
| (弃用) |
实现字符数组输入/输出操作 (类) |
[编辑] 类型定义
常见的字符类型的类型定义,分别为:
typedef basic_ios<char> ios; typedef basic_ios<wchar_t> wios; typedef basic_streambuf<char> streambuf; typedef basic_streambuf<wchar_t> wstreambuf; typedef basic_filebuf<char> filebuf; typedef basic_filebuf<wchar_t> wfilebuf; typedef basic_stringbuf<char> stringbuf; typedef basic_stringbuf<wchar_t> wstringbuf; typedef basic_istream<char> istream; typedef basic_istream<wchar_t> wistream; typedef basic_ostream<char> ostream; typedef basic_ostream<wchar_t> wostream; typedef basic_iostream<char> iostream; typedef basic_iostream<wchar_t> wiostream; typedef basic_ifstream<char> ifstream; typedef basic_ifstream<wchar_t> wifstream; typedef basic_ofstream<char> ofstream; typedef basic_ofstream<wchar_t> wofstream; typedef basic_fstream<char> fstream; typedef basic_fstream<wchar_t> wfstream; typedef basic_istringstream<char> istringstream; typedef basic_istringstream<wchar_t> wistringstream; typedef basic_ostringstream<char> ostringstream; typedef basic_ostringstream<wchar_t> wostringstream; typedef basic_stringstream<char> stringstream; typedef basic_stringstream<wchar_t> wstringstream;
[编辑] 预定义标准流对象
| 定义于头文件
<iostream> | |
| 从标准 C 输入流 stdin 读取 (全局对象) | |
| 写入标准 C 输出流 stdout (全局对象) | |
| 写入标准 C 错误流 stderr ,无缓冲 (全局对象) | |
| 写入标准 C 错误流 stderr (全局对象) | |
[编辑] I/O 操作
基于流的I/O库使用I/O操作(例如std::boolalpha,std::hex等)来控制流的行为.
[编辑] 类型
以下是辅助类型的定义:
| 定义于头文件
<ios> | |
| 表示相对文件/流的位置(偏离fpos),足以代表任何文件的大小 (typedef) | |
| 表示一个I/O操作中所传输的字符数,或I/O缓冲器的大小 (typedef) | |
| 在流或文件中的绝对位置 (类模板) | |
std::fpos 提供了4种特殊类型:
| 定义于头文件
<ios> | |
| 类型 | 定义 |
streampos
|
std::fpos<std::char_traits<char>::state_type> |
u16streampos
|
std::fpos<std::char_traits<char16_t>::state_type> |
u32streampos
|
std::fpos<std::char_traits<char32_t>::state_type> |
wstreampos
|
std::fpos<std::char_traits<wchar_t>::state_type> |
[编辑] 错误类别接口
| 定义于头文件
<ios> | |
| (C++11) |
IO 流 error_code (枚举) |
| (C++11) |
鉴别 iostream 错误类别 (函数) |
[编辑] C-风格 IO
C++还包括C,如std::fopen,std::getc等.
