C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- C 飿 ¼æä»¶è¾å ¥/è¾åº
- std::basic_streambuf
- std::basic_filebuf
- std::basic_stringbuf
- è¾å ¥/è¾åºæçºµç¬¦
- std::strstreambuf
- std::basic_syncbuf
- std::basic_ios
- std::basic_istream
- std::ios_base
- std::basic_osyncstream
- std::basic_ostream
- std::basic_iostream
- std::basic_ifstream
- std::basic_ofstream
- std::basic_fstream
- std::basic_istringstream
- std::basic_ostringstream
- std::basic_stringstream
- std::istrstream
- std::ostrstream
- std::strstream
- std::streamoff
- std::streamsize
- std::fpos
- std::iostream_category
- std::io_errc
- std::cin, std::wcin
- std::cout, std::wcout
- std::cerr, std::wcerr
- std::clog, std::wclog
- 注é
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >è¾å ¥/è¾åºåº > std::fpos
std::fpos
| å®ä¹äºå¤´æä»¶ <ios>
|
||
| template< class State > class fpos; |
||
ç±»æ¨¡æ¿ std::fpos çç¹åæ è¯æµææä»¶ä¸çç»å¯¹ä½ç½®ãæ¯ä¸ª fpos ç±»åå¯¹è±¡ä¿ææµä¸çåèä½ç½®ï¼å¸¸ä¸º std::streamoff ç±»åçç§ææåï¼åå½åè¿ç§»ç¶æï¼ State ç±»åå¼ï¼å¸¸ä¸º std::mbstate_t ï¼ã
æä¾ä¸å std::fpos ç¹åï¼
| Â | |
| ç±»å | å®ä¹ |
streampos
|
std::fpos<std::char_traits<char>::state_type> |
wstreampos
|
std::fpos<std::char_traits<wchar_t>::state_type> |
u8streampos (C++20 èµ·)
|
std::fpos<std::char_traits<char8_t>::state_type> |
u16streampos (C++11 èµ·)
|
std::fpos<std::char_traits<char16_t>::state_type> |
u32streampos (C++11 èµ·)
|
std::fpos<std::char_traits<char32_t>::state_type> |
fpos çææç¹åé½ç¬¦åå¯é»è®¤æé (DefaultConstructible) ãå¯å¤å¶æé (CopyConstructible) ãå¯å¤å¶èµå¼ (CopyAssignable) ã坿æ (Destructible) åå¯ç¸çæ¯è¾ (EqualityComparable) è¦æ±ã
è¥ State å¯å¹³å¡å¤å¶æé ï¼å fpos æ¥æå¹³å¡é»è®¤æé 彿°ã
è¥ State å¯å¹³å¡å¤å¶èµå¼ï¼å fpos æ¥æå¹³å¡å¤å¶èµå¼è¿ç®ç¬¦ã
è¥ State å¯å¹³å¡ææï¼å fpos æ¥æå¹³å¡ææå½æ°ã
模æ¿å½¢å
| State | - | 表示è¿ç§»ç¶æçç±»å |
| ç±»åè¦æ± | ||
-State å¿
é¡»æ»¡è¶³å¯ææ (Destructible) ã å¯å¤å¶èµå¼ (CopyAssignable) ã å¯å¤å¶æé (CopyConstructible) å å¯é»è®¤æé (DefaultConstructible) çè¦æ±ã
| ||
æå彿°
| è·å/设置è¿ç§»ç¶æçå¼ (å ¬å¼æå彿°) |
å¦å¤ï¼æä¾æ¯æä¸åæä½çæååéæå彿°ï¼
- é»è®¤æé 彿°ï¼åå¨é¶å移并å¼åå§åç¶æå¯¹è±¡ã
- é explicit çæé 彿°ï¼æ¥åä¸ä¸ªï¼å¯ä¸º const çï¼ std::streamoff ç±»ååæ°ï¼åå¨å
¶å移并å¼åå§åç¶æå¯¹è±¡ãæ¤æé 彿°å¿
须亦æ¥åç¹æ®å¼ std::streamoff(-1) ï¼æäºæµæä½è¿åä»¥æ¤æ¹å¼æé ç
std::fposï¼ä»¥æç¤ºé误ã
- ä»ï¼å¯ä¸º const çï¼
fposå° std::streamoff çæ¾å¼è½¬æ¢ãç»ææ¯åå¨çåç§»ã
- æ¯è¾äºä¸ªï¼å¯ä¸º const çï¼
std::fposç±»åï¼è¿åå¯è½¬æ¢ä¸º bool çç±»åç operator== å operator!= ã p != q çä»·äº !(p == q) ã
- operator+ ä¸ operator- ï¼ä½¿å¾å¯¹äºï¼å¯ä¸º const çï¼
fpos<State>对象påï¼å¯ä¸º const çï¼ std::streamoff 对象o
- p + o æ¥æ
fpos<State>ç±»åï¼èåå¨çå移为å°oå å°pçç»æ - o + p æ¥æå¯è½¬æ¢ä¸º
fpos<State>çç±»åï¼è转æ¢ç»æçäº p + o - p - o æ¥æ
fpos<State>ç±»åï¼èåå¨çå移为ä»pçåç§»åå»oçç»æ
- p + o æ¥æ
- operator+= ä¸ operator-= ï¼è½æ¥åä¸ä¸ªï¼å¯ä¸º const çï¼ std::streamoff å¹¶åå«å¯¹åå¨çåç§»å /åä¹ã
- operator- ï¼è½å¯¹äºä¸ªï¼å¯ä¸º const çï¼
std::fpos对象ç¸åï¼äº§ç std::streamoff ï¼ä½¿å¾å¯¹äºäºä¸ªè¿ç§å¯¹è±¡pä¸qæ p == q + (p - q) ã
注æ
è¦æ± std::streampos ä¸ std::wstreampos 为åä¸ç±»åï¼å ä¸ºè¦æ± std::char_traits<char>::state_type ä¸ std::char_traits<wchar_t>::state_type å为 std::mbstate_t ã C++98 æè¿èªç¸çç¾çéè¿°ï¼è¯´è¥å®ç°æ¯æçªé¢å iostream ä¸çæ è¿ç§»ç¼ç ï¼åå®ä»¬å¯ä»¥ä¸åï¼ä½å¨å®½é¢åæµä¸æ¯æä¸æå¤ä¸ªè¿ç§»ç¼ç ï¼ä¸è¿è¿å¨ C++03 䏿´æ£äºã
ä¸äº I/O æµæå彿°è¿åå¹¶æçºµæå typedef pos_type ç±»å对象ãå¯¹äºæµï¼è¿äºæå typedef ç±æ¨¡æ¿å½¢å Traits æä¾ï¼é»è®¤ä¸º std::char_traits ï¼å®å®ä¹å
¶ pos_type 为 std::fpos çç¹åã Traits::pos_type 䏿¯ std::fpos<std::mbstate_t> ï¼ std::streampos æ std::wstreampos çå«åï¼æ¶ï¼ I/O æµåºçè¡ä¸ºæ¯å®ç°å®ä¹çã
ç¼ºé·æ¥å
ä¸åæ´æ¹è¡ä¸ºçç¼ºé·æ¥å追溯å°åºç¨äºä»¥ååºçç C++ æ åã
| DR | åºç¨äº | åºçæ¶çè¡ä¸º | æ£ç¡®è¡ä¸º |
|---|---|---|---|
| P0759R1 | C++98 | è§å®ä¸æ¸ æ°ä¸ä¸å®æ´ | å·²æ´ç |
| P1148R0 | C++11 | ä¸æç¡®åªä¸ªå¤´æä»¶å®ä¹ u16streampos å u32streampos æå
¶å®ä¹æ¯ä»ä¹
|
ä½¿ä¹æç¡® |
åé
| 表示ç¸å¯¹çæä»¶/æµä½ç½®ï¼è· fpos çåç§»ï¼ï¼è¶³ä»¥è¡¨ç¤ºä»»ä½æä»¶å¤§å° (typedef) | |
| è¿åè¾åºä½ç½®æç¤ºå¨ ( std::basic_ostream<CharT,Traits> çå
¬å¼æå彿°) | |
| 设置è¾åºä½ç½®æç¤ºå¨ ( std::basic_ostream<CharT,Traits> çå
¬å¼æå彿°) | |
| è·åæä»¶ä½ç½®æç¤ºå¨ (彿°) |