C++标准库模板(STL)-输入/输出库

C++ 包含两个输入/输出库:现代的、基于流的 I/O 库和 C 风格 I/O 函数的标准集合。

基于流的 I/O

基于流的输入/输出库围绕抽象的输入/输出设备组织。这些抽象设备允许相同代码处理对文件、内存流或随即进行任意操作(例如压缩)的自定义适配器设备的输入/输出。

大多数已经被类模板化,故它们能被适配到任何标准字符类型。为最常用的基本字符类型( char 和 wchar_t )提供分离的 typedef 。以下列层次将类组织:

继承图

C++标准库模板(STL)-输入/输出库_第1张图片

抽象

定义于头文件

ios_base

管理格式化标志和输入/输出异常
(类)

basic_ios

管理任意流缓冲
(类模板)

定义于头文件

basic_streambuf

抽象原生设备
(类模板)

定义于头文件

basic_ostream

包装给定的抽象设备(std::basic_streambuf)
并提供高层输出接口
(类模板)

定义于头文件

basic_istream

包装给定的抽象设备(std::basic_streambuf)
并提供高层输入接口
(类模板)

basic_iostream

包装给定的抽象设备(std::basic_streambuf)
并提供高层输入/输出接口
(类模板)

文件 I/O 实现

定义于头文件

basic_filebuf

抽象原生文件设备
(类模板)

basic_ifstream

实现高层文件流输入操作
(类模板)

basic_ofstream

实现高层文件流输出操作
(类模板)

basic_fstream

实现高层文件流输入/输出操作
(类模板)

字符串 I/O 实现

定义于头文件

basic_stringbuf

实现原生字符串设备
(类模板)

basic_istringstream

实现高层字符串流输入操作
(类模板)

basic_ostringstream

实现高层字符串流输出操作
(类模板)

basic_stringstream

实现高层字符串流输入/输出操作
(类模板)

数组 I/O 实现

定义于头文件

strstreambuf

(C++98 中弃用)

实现原生字符数组设备
(类)

istrstream

(C++98 中弃用)

实现字符数组输入操作
(类)

ostrstream

(C++98 中弃用)

实现字符数组输出操作
(类)

strstream

(C++98 中弃用)

实现字符数组输入/输出操作
(类)

同步的输出

定义于头文件

basic_syncbuf

(C++20)

同步输出设备的包装
(类模板)

basic_osyncstream

(C++20)

同步输出流的包装
(类模板)

typedef

提供对常用字符类型的 typedef :

typedef basic_ios                ios;
typedef basic_ios            wios;
 
typedef basic_streambuf     streambuf;
typedef basic_streambuf wstreambuf;
typedef basic_filebuf         filebuf;
typedef basic_filebuf     wfilebuf;
typedef basic_stringbuf     stringbuf;
typedef basic_stringbuf wstringbuf;
typedef basic_syncbuf         syncbuf;
typedef basic_syncbuf     wsyncbuf;
 
typedef basic_istream         istream;
typedef basic_istream     wistream;
typedef basic_ostream         ostream;
typedef basic_ostream     wostream;
typedef basic_iostream       iostream;
typedef basic_iostream   wiostream;
 
typedef basic_ifstream       ifstream;
typedef basic_ifstream   wifstream;
typedef basic_ofstream       ofstream;
typedef basic_ofstream   wofstream;
typedef basic_fstream         fstream;
typedef basic_fstream     wfstream;
 
typedef basic_istringstream     istringstream;
typedef basic_istringstream wistringstream;
typedef basic_ostringstream     ostringstream;
typedef basic_ostringstream wostringstream;
typedef basic_stringstream       stringstream;
typedef basic_stringstream   wstringstream;
 
typedef basic_osyncstream     osyncstream;
typedef basic_osyncstream wosyncstream;

预定义标准流对象

定义于头文件

cinwcin

从标准 C 输入流 stdin 中读取
(全局对象)

coutwcout

写入到标准 C 输出流 stdout
(全局对象)

cerrwcerr

写入到标准 C 错误流 stderr, 无缓冲
(全局对象)

clogwclog

写入到标准 C 错误流 stderr
(全局对象)

I/O 操纵符

基于流的 I/O 库用 I/O 操纵符(例如 std::boolalpha 、 std::hex 等)控制流的行为。

类型

定义下列辅助类型:

定义于头文件

streamoff

表示相对的文件/流位置(距 fpos 的偏移),足以表示任何文件大小
(typedef)

streamsize

表示一次 I/O 操作中转移的字符数或 I/O 缓冲区的大小
(typedef)

fpos

表示流或文件中的绝对位置
(类模板)

提供下列 std::fpos 的特化:

定义于头文件

类型 定义
streampos std::fpos::state_type>
wstreampos std::fpos::state_type>

错误类别接口

定义于头文件

io_errc

(C++11)

IO 流的错误码
(枚举)

iostream_category

(C++11)

鉴别 iostream 错误类别
(函数)

你可能感兴趣的:(ios,标准库模板,c++,输入库,输出库)