std::fpos
STD::FPO
Defined in header | | |
---|---|---|
template< class State > class fpos; | | |
类模板的专门化std::fpos
标识流或文件中的绝对位置。每个类型的对象fpos
保持流%28中的字节位置,通常作为类型的私有成员std::streamoff
%29和当前移位状态,类型为State
%28典型std::mbstate_t
29%。
的下列专门化std::fpos
提供:
Type | Definition |
---|---|
streampos | std::fpos<std::char_traits<char>::state_type> |
wstreampos | std::fpos<std::char_traits<wchar_t>::state_type> |
In addition, std::u16streampos and std::u32streampos are provided as implementation-defined types that satisfy the requirements of pos_type. | (since C++11) |
---|
成员函数
state | gets/sets the value of the shift state (public member function) |
---|
此外,必须提供下列成员函数和运算符,但如果它们是成员或非会员,则必须提供未指定的%27s。
- 接受类型参数的构造函数。
int
...
- 接受类型参数的构造函数。
std::streamoff
此构造函数还必须接受特殊值。std::streamoff
(-1)
*std::fpos
以这种方式构造的,由一些流操作返回,以指示错误。
- 转换操作符,它可以转换
fpos
到std::streamoff
的值等于std::fpos(0)
...
operator==
,它比较了两个类型的对象。std::fpos
并返回类型可转换为bool
operator!=
,它比较了两个类型的对象。std::fpos
并返回类型可转换为bool
operator+
和operator+=
可以添加std::streamoff
到std::fpos
operator-
和operator-=
可以减去std::streamoff
从std::fpos
operator-
可以减去两个类型的对象std::fpos
产std::streamoff
注记
std::streampos和std::wstreampos必须是同一类型,因为std::char_traits<char>::state_type和std::char_traits<wchar_t>::state_type都必须是std::mbstate_tC++98有一种自相矛盾的说法,即如果实现不支持窄方向的ioStreams中的移位编码,但支持宽定向流中的一个或多个移位编码,则它们可能有所不同,但在C++03中已经纠正了这一点。
一些I/O流成员函数返回和操作成员ty对联f的对象pos_type对于流,这些成员类型由模板参数提供。Traits,默认为std::char_traits,它定义了它们的pos_typeS将是专门化的...std::fposI/O流库的行为是在Traits::pos_type不是std::fpos<std::mbstate_t>百分之二十八std::streampos或std::wstreampos29%。
另见
streamoff | represents relative file/stream position (offset from fpos), sufficient to represent any file size (typedef) |
---|---|
tellp | returns the output position indicator (public member function of std::basic_ostream) |
seekp | sets the output position indicator (public member function of std::basic_ostream) |
fgetpos | gets the file position indicator (function) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。