Input/output library
输入输出库
C++包括两个输入/输出库:一个现代的、基于流的I/O库和C风格I/O函数的标准集合。
基于流的I/O
基于流的输入/输出库是围绕抽象输入/输出设备组织的。这些抽象设备允许使用相同的代码来处理执行任意操作的文件、内存流或自定义适配器设备的输入/输出。压缩%29在飞行。
大多数类都是模板化的,因此它们可以适应任何基本字符类型。为最常见的基本字符类型%28提供了单独的类型char
和wchar_t
29%。这些类被组织成以下层次结构:
二次
二次
继承图
抽象化
*。
在标头中定义<ios>
IOS[医]BASE管理格式化标志和输入/输出异常%28class%29
基本[医]IOS管理任意流缓冲区%28类模板%29
在标头中定义<streambuf>
基本[医]Streambuf提取原始设备%28类模板%29
在标头中定义<ostream>
基本[医]Ostream封装给定的抽象设备%28 std::basic[医]提供高级输出接口%28类模板%29
在标头中定义<istream>
基本[医]iStream包装给定的抽象设备%28 std::basic[医]提供高级输入接口%28类模板%29
基本[医]iostream包装给定的抽象设备%28 std::basic[医]提供高级输入/输出接口%28类模板%29
文件I/O实现
在标头中定义<fstream>
基本[医]filebuf实现原始文件设备%28类模板%29
基本[医]如果流实现高级文件流输入操作%28类模板%29
基本[医]实现高级文件流输出操作%28类模板%29
基本[医]fstream实现高级文件流输入/输出操作%28类模板%29。
字符串I/O实现
在标头中定义<sstream>
基本[医]实现原始字符串设备%28类模板%29
基本[医]实现高级字符串流输入操作%28类模板%29
基本[医]实现高级字符串流输出操作%28类模板%29
基本[医]实现高级字符串流输入/输出操作%28类模板%29
数组I/O实现
在标头中定义<strstream>
strStrebuf%28被废弃的%29实现原始字符数组设备%28class%29
实现字符数组输入操作%28 class%29
鸵鸟流%28不推荐%29实现字符数组输出操作%28class%29
strstream%28不推荐%29实现字符数组输入/输出操作%28class%29
台培
提供了下列常见字符类型的类型:
二次
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%28全局对象%29中读取
向标准C输出流stdout%28全局对象%29写入
cerrwcerr写入标准C错误流stderr,未缓冲%28全局对象%29
写入标准C错误流stderr%28全局对象%29
I/O机械手
基于流的I/O库使用I/O机械手%28等std::boolalpha
,,,std::hex
等%29来控制流的行为。
类型
定义了下列辅助类型:
在标头中定义<ios>
*。
流表示相对文件/流位置%28与FPO%29的偏移量,足以表示任何文件大小%28-胡枝子f%29
流大小表示在I/O操作中传输的字符数或I/O缓冲区%28-胡枝子f%29的大小
FPO表示流或文件%28类模板%29中的绝对位置。
的下列专门化std::fpos
提供:
在标头中定义<ios>
*。
类型定义
Streampos STD::FPOS<std::char[医]性状<char>*国家[医]类型>
wStreamposSTD::FPOS<std::char[医]性状<wchar[医]T>::[医]类型>
错误类别接口
在标头中定义<ios>
*。
井上[医]ERRC%28C++11%29 IO流错误码%28 enum%29
碘流[医]类别%28C++11%29标识碘流错误类别%28功能%29
C型IO
C++还包括C定义的输入/输出函数,如std::fopen
,,,std::getc
等
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。