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::basic_fstream
std::basic_fstream
  class CharT,
  class Traits = std::char_traits<CharT>
ç±»æ¨¡æ¿ basic_fstream å®ç°åºäºæä»¶çæµä¸çé«å±è¾å
¥/è¾åºãå®å° std::basic_iostream çé«å±æ¥å£èµäºåºäºæä»¶çç¼å²ï¼ std::basic_filebuf ï¼ã
std::basic_fstream çå
¸åå®ç°åªä¿æä¸ä¸ªéå¯¼åºæ°æ®æåï¼ std::basic_filebuf<CharT, Traits> çå®ä¾ã
ç»§æ¿å¾
亦å®ä¹äºä¸ªå¯¹äºå¸¸ç¨å符类åçç¹åï¼
| å®ä¹äºå¤´æä»¶
<fstream> | |
| Â | |
| ç±»å | å®ä¹ |
fstream
|
basic_fstream<char> |
wfstream
|
basic_fstream<wchar_t> |
æåç±»å
| Â | |
| æåç±»å | å®ä¹ |
char_type
|
CharT |
traits_type
|
Traits ï¼è¥ Traits::char_type 䏿¯ CharT åç¨åºä¸ºè°¬æã |
int_type
|
Traits::int_type |
pos_type
|
Traits::pos_type |
off_type
|
Traits::off_type |
æå彿°
| æé æä»¶æµ (å ¬å¼æå彿°) | |
| (ææå½æ°) [è] (éå¼å£°æ) |
ææ basic_fstream åå
³èçç¼å²åºï¼å¹¶å
³éæä»¶ (èå ¬å¼æå彿°) |
| (C++11) |
ç§»å¨æä»¶æµ (å ¬å¼æå彿°) |
| (C++11) |
交æ¢äºä¸ªæä»¶æµ (å ¬å¼æå彿°) |
| è¿ååºå±æªå¤ççæä»¶è®¾å¤å¯¹è±¡ (å ¬å¼æå彿°) | |
æä»¶æä½ | |
| æ£æ¥æµæ¯å¦æå
³èæä»¶ (å ¬å¼æå彿°) | |
| æå¼æä»¶ï¼å¹¶å°å®ä¸æµå
³è (å ¬å¼æå彿°) | |
| å
³éå
³èæä»¶ (å ¬å¼æå彿°) | |
éæå彿°
| ç¹å std::swap ç®æ³ (彿°æ¨¡æ¿) |
ç»§æ¿èª std::basic_istream
æå彿°
ææ ¼å¼è¾å ¥ | |
| æåå¸¦æ ¼å¼æ°æ® ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
æ æ ¼å¼è¾å ¥ | |
| 仿µä¸è¯»å¹¶åèµ°ï¼ç§»é¤ç±»ä¼¼æéåä¸ä¸ä¸ªå
ç´ ç§»å¨ï¼ä¸ä¸ªå符 ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| ä»
读åºä½ä¸åèµ°ï¼ä¸ç§»é¤ç±»ä¼¼æéå¹¶æªç§»å¨ï¼ä¸ä¸ªå符 ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| æ¤éæµä¸ååèµ°ï¼ç§»é¤ï¼ç±»ä¼¼æéååéåä¸ä¸ªä½ç½®ï¼çå符 ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| å¾è¾å
¥æµä¸éåä¸ä¸ªå符 ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| ä¸ç´è¯»å¹¶åèµ°å符ï¼ç´è³æ¾å°ç»å®å符 ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| 读ä¸åèµ°å¹¶èå¼å符ï¼ç´è³åç°ç»å®å符 ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| 读并åèµ°ä¸åå符 ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| 读并åèµ°å·²ç»å¯ç¨çå符å ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| è¿å䏿¬¡æ æ ¼å¼è¾åºæä½æåèµ°çå符æ°é ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
å¯»ä½ | |
| è¿åè¾å
¥ä½ç½®æç¤ºå¨ ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
| 设置è¾å
¥ä½ç½®æç¤ºå¨ ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
æé¡¹ | |
| ä¸åºå±åå¨è®¾å¤åæ¥ ( std::basic_istream<CharT,Traits> çå
¬å¼æå彿°) | |
æåç±»
| å®ç°ä¸ºè¾åºæä½å夿µçåºæ¬é»è¾ ( std::basic_istream<CharT,Traits> çå
¬å¼æåç±») |
ç»§æ¿èª std::basic_ostream
æå彿°
ææ ¼å¼è¾åº | |
| æå
¥å¸¦æ ¼å¼æ°æ® ( std::basic_ostream<CharT,Traits> çå
¬å¼æå彿°) | |
æ æ ¼å¼è¾åº | |
| æå
¥å符 ( std::basic_ostream<CharT,Traits> çå
¬å¼æå彿°) | |
| æå
¥å符å ( std::basic_ostream<CharT,Traits> çå
¬å¼æå彿°) | |
å¯»ä½ | |
| è¿åè¾åºä½ç½®æç¤ºå¨ ( std::basic_ostream<CharT,Traits> çå
¬å¼æå彿°) | |
| 设置è¾åºä½ç½®æç¤ºå¨ ( std::basic_ostream<CharT,Traits> çå
¬å¼æå彿°) | |
æé¡¹ | |
| ä¸åºå±åå¨è®¾å¤åæ¥ ( std::basic_ostream<CharT,Traits> çå
¬å¼æå彿°) | |
æåç±»
| 为è¾åºæä½å®ç°æµåå¤çåºæ¬é»è¾ ( std::basic_ostream<CharT,Traits> çå
¬å¼æåç±») |
ç»§æ¿èª std::basic_ios
æåç±»å
| Â | |
| æåç±»å | å®ä¹ |
char_type
|
CharT |
traits_type
|
Traits |
int_type
|
Traits::int_type |
pos_type
|
Traits::pos_type |
off_type
|
Traits::off_type |
æå彿°
ç¶æå½æ° | |
| æ£æ¥æ¯å¦æ²¡æåçé误ï¼ä¾å¦æ¯å¦å¯æ§è¡I/Oæä½ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| æ£æ¥æ¯å¦å°è¾¾äºæä»¶æ«å°¾ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| æ£æ¥æ¯å¦åçäºå¯æ¢å¤çé误 ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| æ£æ¥æ¯å¦å·²åçä¸å¯æ¢å¤çé误 ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| æ£æ¥æ¯å¦æé误åçï¼fail() çåä¹è¯ï¼ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| (C++11 å)(C++11 èµ·) |
æ£æ¥æ¯å¦æ²¡æåçé误ï¼!fail()çåä¹è¯ï¼ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) |
| è¿åç¶ææ å¿ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| è®¾ç½®ç¶ææ å¿ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| ä¿®æ¹ç¶ææ å¿ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
æ ¼å¼å | |
| å¤å¶æ ¼å¼åä¿¡æ¯ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| 管çå¡«å
å符 ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
æé¡¹ | |
| 管çå¼å¸¸æ©ç ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| 设置æ¬å°ç¯å¢ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| 管çç¸å
³çæµç¼å²åº ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| 管çç»å®çæµ ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| çªåå符 ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
| æå®½å符 ( std::basic_ios<CharT,Traits> çå
¬å¼æå彿°) | |
ç»§æ¿èª std::ios_base
æå彿°
æ ¼å¼å | |
| ç®¡çæ ¼å¼æ å¿ ( std::ios_base çå
¬å¼æå彿°) | |
| 设置ç¹å®æ ¼å¼æ å¿ ( std::ios_base çå
¬å¼æå彿°) | |
| æ¸
é¤ç¹å®æ ¼å¼çæ å¿ ( std::ios_base çå
¬å¼æå彿°) | |
| ç®¡çæµ®ç¹æä½ç精度 ( std::ios_base çå
¬å¼æå彿°) | |
| 管çåç宽度 ( std::ios_base çå
¬å¼æå彿°) | |
æ¬å°ç¯å¢ | |
| 设置æ¬å°ç¯å¢ ( std::ios_base çå
¬å¼æå彿°) | |
| è¿åå½åæ¬å°ç¯å¢ ( std::ios_base çå
¬å¼æå彿°) | |
å é¨å¯æ©å±æ°ç» | |
| [éæ] |
è¿åè½å®å
¨ç¨ä½ pword() å iword() 䏿 çç¨åºèå´å
ç¬æçæ´æ° ( std::ios_base çå
¬å¼éææå彿°) |
| 妿æå¿
è¦çè¯ï¼è°æ´ç§æåå¨ç大å°ï¼å¹¶ä¸è®¿é®ä½äºæä¾ç䏿 çlongå
ç´ ( std::ios_base çå
¬å¼æå彿°) | |
| è¥éè¦åéç½®ç§æåå¨ç大å°ï¼å¹¶è®¿é®ä½äºæå®ä¸æ ç void* å
ç´ ( std::ios_base çå
¬å¼æå彿°) | |
æé¡¹ | |
| 注åäºä»¶åè°å½æ° ( std::ios_base çå
¬å¼æå彿°) | |
| [éæ] |
设置C++åCçIOåºæ¯å¦å¯ä»¥äºæä½ ( std::ios_base çå
¬å¼éææå彿°) |
æåç±» | |
| æµå¼å¸¸ ( std::ios_base çå
¬å¼æåç±») | |
| åå§åæ åæµå¯¹è±¡ ( std::ios_base çå
¬å¼æåç±») | |
æåç±»åå常é | |||||||||||||||||||||||||||||||||||||||||
| Â | |||||||||||||||||||||||||||||||||||||||||
| ç±»å | è§£é | ||||||||||||||||||||||||||||||||||||||||
| æµæå¼æ¨¡å¼ç±»å
亦å®ä¹ä¸å常éï¼
(typedef) | |||||||||||||||||||||||||||||||||||||||||
| æ ¼å¼åæ å¿ç±»å
亦å®ä¹ä¸å常éï¼
(typedef) | |||||||||||||||||||||||||||||||||||||||||
| æµç¶æç±»å
亦å®ä¹ä¸å常éï¼
(typedef) | |||||||||||||||||||||||||||||||||||||||||
| 坻使¹åç±»å
亦å®ä¹ä¸å常éï¼
(typedef) | |||||||||||||||||||||||||||||||||||||||||
| æå®äºä»¶ç±»å (æä¸¾) | |||||||||||||||||||||||||||||||||||||||||
| åè°å½æ°ç±»å (typedef) | |||||||||||||||||||||||||||||||||||||||||
åé
| ä» I/O æµè¯»åæ°æ®å°å符串 (彿°æ¨¡æ¿) |
示ä¾
è¿è¡æ¤ä»£ç
#include <iostream> #include <fstream> #include <string>  int main() { std::string filename = "test.bin"; std::fstream s(filename, std::fstream::binary | std::fstream::trunc | std::fstream::in | std::fstream::out); if (!s.is_open()) { std::cout << "failed to open " << filename << '\n'; } else { // åå ¥ double d = 3.14; s.write(reinterpret_cast<char*>(&d), sizeof d); // äºè¿å¶è¾åº s << 123 << "abc"; // ææ¬è¾åº  // å¯¹äº fstream ï¼è¿ä¼ç§»å¨æä»¶ä½ç½®æéï¼æ¾ç½®ä¸è·åï¼ s.seekp(0);  // 读å s.read(reinterpret_cast<char*>(&d), sizeof d); // äºè¿å¶è¾å ¥ int n; std::string str; if (s >> n >> str) // ææ¬è¾å ¥ std::cout << "read back from file: " << d << ' ' << n << ' ' << str << '\n'; } }
è¾åºï¼
read back from file: 3.14 123 abc