Input/output library
来自cppreference.com
< cpp
C++包括两个输入/输出库:一个现代的,基于流的I/O库和一套标准的C风格的I/O函数.
目录 |
[编辑] 基于流的I/O
基于数据流的输入/输出库是围绕着抽象的输入/输出设备。这些抽象设备允许同样的代码来处理面向文件,内存流或自定义的适配器设备(比如这些设备在数据传输中可以执行自定义的操作(如压缩))的输入/输出.
大部分类都是模板类,所以它们可以适用于任何基本类型。下面以最常见的基本字符类型(char和wchar_t)为例展示一些类定义。这些类按照下面的层次组织:
抽象 | |
管理格式化标志和输/输出异常 (类) | |
管理任意流缓冲区 (类模板) | |
抽象原始设备 (类模板) | |
隐藏给定的抽象设备(std::basic_streambuf) ,并提供高级的输入接口 (类模板) | |
隐藏给定的抽象设备(std::basic_streambuf) ,并提供高级的输出接口 (类模板) | |
隐藏给定的抽象设备(std::basic_streambuf) ,并提供高级的输入/输出接口 (类模板) | |
文件I/O实现 | |
实现原始文件设备 (类模板) | |
实现了高级的文件流的输入操作 (类模板) | |
实现了高级的文件流输出操作 (类模板) | |
实现了高级的文件流输入/输出操作 (类模板) | |
字符串I/0实现 | |
实现原始字符串设备 (类模板) | |
实现了高级的字符串流输入操作 (类模板) | |
实现了高级的字符串流输出操作 (类模板) | |
实现了高级的字符串流输入/输出操作 (类模板) | |
队列I/O实现 | |
(已弃用) |
实现原始字符数组设备 (类) |
(已弃用) |
实现字符数组的输入操作 (类) |
(已弃用) |
实现字符数组输出操作 (类) |
(已弃用) |
实现字符数组的输入/输出操作 (类) |
[编辑] 类型定义
常见的字符类型的类型定义,分别为:
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;
预定义的标准流对象:
extern istream cin; //标准输入 (stdin) extern wistream wcin; extern ostream cout; //标准输出 (stdout) extern wostream wcout; extern ostream cerr; //标准错误 (stderr) extern wostream wcerr; extern ostream clog; //标准日志 (stdlog) extern wostream wclog;
[编辑] I/O 操作
基于流的I/O库使用I/O操作(例如std::boolalpha,std::hex等)来控制流的行为.
[编辑] 类型
以下是辅助类型的定义:
在头文件
<ios> 中定义 | |
表示相对文件/流的位置(偏离fpos),足以代表任何文件的大小 (typedef) | |
表示一个I/O操作中所传输的字符数,或I/O缓冲器的大小 (typedef) | |
在流或文件中的绝对位置 (类模板) |
std::fpos 提供了4种特殊类型:
在头文件
<ios> 中定义 | |
类型 | Definition |
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> |
[编辑] Error类接口
在头文件
<ios> 中定义 | |
(C++11) |
IO流的错误代码 (枚举) |
(C++11) |
标识的iostream类错误 原文: identifies the iostream error category (函数) |
[编辑] C-风格 IO
C++还包括C,如std::fopen,std::getc等.