在线文档教程
C++
输入/输出 | Input/output

std::basic_streambuf

性病:基本[医]流光

Defined in header
template< class CharT, class Traits = std::char_traits<CharT> > class basic_streambuf;

全班basic_streambuf控制输入和输出到字符序列。它包括并提供访问。

1%29受控字符序列,也称为缓冲器,其中可能包含输入序列%28也称为获取面积%29用于缓冲输入操作和/或输出序列%28也称为放置面积%29用于缓冲输出操作。

2%29关联字符序列,也称为来源%28用于输入%29或沉槽%28用于输出%29。这可能是通过OS API%28文件、TCP套接字、串口、其他字符设备%29访问的实体,也可能是对象%28 std::VISTIC、数组、字符串文本%29,可以解释为字符源或接收器。

I/O流对象std::basic_istreamstd::basic_ostream,以及从它们派生的所有对象%28std::ofstream,,,std::stringstream,ETC%29,完全按照std::basic_streambuf...

受控字符序列是CharT它在任何时候都代表一个子序列,或者是一个进入相关字符序列的“窗口”。它的状态由三个指针描述:

1%29起始指针,总是指向缓冲区的最低元素。

2%29下一个指针,指向下一个阅读或写入候选元素。

3%29末端指针,在缓冲区结束后指向一个。

basic_streambuf对象可以支持输入%28,在这种情况下,将调用起始、下一个和结束指针所描述的缓冲区。获取面积%29,产出%28放置面积%29,或同时输入和输出。在后一种情况下,跟踪六个指针,这些指针都可能指向同一个字符数组或两个单独数组的元素。

如果下一个指针小于PUT区域中的结束指针,则写入位置是可用的。下一个指针可以取消引用并分配给。

如果下一个指针小于GET区域中的结束指针,则读位是可用的。下一个指针可以取消引用并从中读取。

如果下一个指针大于GET区域中的起始指针,则倒置位置则下一个指针可能会减少、取消引用并分配给它,以便将一个字符放回GET区域。

受控序列中的字符表示和编码可能与关联序列中的字符表示不同,在这种情况下,std::codecvtlocalefacet通常用于执行转换。常见的示例是utf-8%28或其他多字节%29的文件,这些文件是通过std::wfstream对象:受控序列由wchar_t字符,但关联序列由字节组成。

的典型实施std::basic_streambuf基类只包含六个CharT*指针和std::locale作为数据成员。此外,实现可以保留locale方面的缓存副本,这些副本在任何时候都是无效的。imbue()叫做。混凝土缓冲,如std::basic_filebufstd::basic_stringbuf派生自std::basic_streambuf...

标准库提供了两种方便的字体。

在标头中定义<streambuf>

*。

类型定义

流光基[医]流光<char>

wStrebuf Basic[医]Streambuf<wchar[医]T>

成员类型

Member typeDefinition
char_typeCharT
traits_typeTraits
int_typeTraits::int_type
pos_typeTraits::pos_type
off_typeTraits::off_type

成员函数

(destructor) virtualdestructs the basic_streambuf object (virtual public member function)

地区

调用imbue%28%29%28公共成员函数%29

getloc获得关联的locale%28公共成员函数%29的副本

定位

调用setbuf%28%29%28公共成员函数%29

公共服务调用查找函数%28%29%28公共成员函数%29

公共服务调用寻呼%28%29%28公共成员函数%29

公共同步调用同步%28%29%28公共成员函数%29

获取面积

在[医]获取GET区域%28公共成员函数%29中立即可用的字符数

snextc将推进输入序列,然后读取一个字符,而不会再次前进%28公共成员函数%29。

从输入序列中读取一个字符,并提升序列%28公共成员函数%29。

stossc%28不推荐使用%29%28,直到C++17%29将输入序列升级,就像调用sbunpc%28%29和丢弃结果%28公共成员函数%29一样。

sgetc从输入序列中读取一个字符,而不提升序列%28公共成员函数%29。

sgetn调用xsgetn%28%29%28公共成员函数%29

放置面积

溅射将一个字符写入PUT区域,并提升下一个指针%28公共成员函数%29。

调用xspain%28%29%28公共成员函数%29

倒置

sputbackc在输入序列%28公共成员函数%29中放回一个字符

sungetc将输入序列中的下一个指针移回1%28公共成员函数%29。

受保护成员函数

%28构造函数%29构造基本[医]流对象%28受保护成员函数%29

运算符=%28C++11%29替换基本[医]流对象%28受保护成员函数%29

交换%28C++11%29掉期[医]流对象%28受保护成员函数%29

地区

灌输虚拟更改关联区域设置%28虚拟受保护成员函数%29

定位

塞布夫虚拟使用用户定义的数组替换缓冲区,如果允许的话,使用%28虚拟受保护成员函数%29。

寻的虚拟使用相对寻址%28虚拟受保护成员函数%29将下一个指针重新定位在输入序列、输出序列或两者中

求购虚拟使用绝对寻址%28虚拟受保护成员函数%29在输入序列、输出序列或两者中重新定位下一个指针

同步虚拟将缓冲区与关联的字符序列%28虚拟受保护成员函数%29同步。

获取面积

演艺界c虚拟如果已知%28虚拟受保护成员函数%29,则获取关联输入序列中可用于输入的字符数。

底流虚拟将相关输入序列中的字符读取到GET区域%28虚拟受保护成员函数%29

流线虚拟将相关输入序列中的字符读取到GET区域,并将下一个指针%28虚拟受保护成员函数%29向前推进。

xsgetn虚拟从输入序列%28虚拟受保护成员函数%29读取多个字符

ebackgptregptr返回指向GET区域%28受保护成员函数%29的起始、当前字符和结束的指针。

在输入序列%28受保护的成员函数%29中的下一个指针

SETG重新定位输入序列%28受保护的成员函数%29的开始、下一步和结束指针。

放置面积

xspon虚拟将多个字符写入输出序列%28虚拟受保护成员函数%29

溢流虚拟将字符写入PUT区域%28虚拟受保护成员函数%29的关联输出序列

pbasepptrepptr返回指向PUT区域%28受保护成员函数%29的起始、当前字符和结束的指针。

pbp推进输出序列%28受保护的成员函数%29的下一个指针。

SETP重新定位输出序列%28受保护的成员函数%29的开始、下一步和结束指针。

倒置

背向失败虚拟将一个字符重新放入输入序列,可能会修改输入序列%28虚拟受保护的成员函数%29。

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/io/basic[医]流光