C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- C 飿 ¼æä»¶è¾å ¥/è¾åº
- è¾å ¥/è¾åºæçºµç¬¦
- std::ios_base
- std::basic_osyncstream
- std::clearerr
- std::fopen
- std::fgetc, std::getc
- std::printf, std::fprintf, std::sprintf, std::snprintf
- std::scanf, std::fscanf, std::sscanf
- std::FILE
- std::basic_streambuf
- std::basic_filebuf
- std::basic_stringbuf
- std::strstreambuf
- std::basic_syncbuf
- std::basic_ios
- std::basic_istream
- 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++ åèæå >è¾å ¥/è¾åºåº > C 飿 ¼æä»¶è¾å ¥/è¾åº
C 飿 ¼æä»¶è¾å ¥/è¾åº
C++ æ ååºç C I/O åéå®ç° C 飿 ¼æµè¾å
¥/è¾åºæä½ã <cstdio> 头æä»¶æä¾éç¨æä»¶æ¯æå¹¶æä¾æçªåå¤åèå符è¾å
¥/è¾åºè½åç彿°ï¼è <cwchar> 头æä»¶æä¾æå®½å符è¾å
¥/è¾åºè½åç彿°ã
C æµæ¯ std::FILE ç±»å对象ï¼åªè½éè¿ std::FILE* ç±»åæé访é®åæä½ï¼æ³¨æï¼å¨å¯è½ä»¥è§£å¼ç¨åæ³ç std::FILE* ï¼å¤å¶å建 std::FILE ç±»åçå±é¨å¯¹è±¡æ¶ï¼å¨ I/O 彿°ä½¿ç¨è¿ç§å¯æ¬çå°åæ¯æªå®ä¹è¡ä¸ºï¼ãæ¯ä¸ª C æµä¸å¤é¨ç©ç设å¤ï¼æä»¶ãæ åè¾å ¥æµãæå°æºãåºå端å£çï¼å ³èã
C æµè½ç¨äºæ æ ¼å¼åææ ¼å¼çè¾å ¥åè¾åºãå®ä»¬å¯¹æ¬å°ç¯å¢ææï¼å¹¶å¯å¨éè¦æ¶æä¾å®½/å¤åè转æ¢ãä¸åäºå ³èå°å ¶èªèº«æ¬å°ç¯å¢ç C++ æµï¼ææ C æµé½è®¿é®å䏿¬å°ç¯å¢å¯¹è±¡ï¼æè¿ std::setlocale æå®è£ è ã
é¤äºè®¿é®è®¾å¤æå¿ é¡»çç³»ç»éå®ä¿¡æ¯ï¼ä¾å¦ POSIX æä»¶æè¿°ç¬¦ï¼ï¼æ¯ä¸ª C æµå¯¹è±¡ä¿æä»¥ä¸å 容ï¼
std::fpos_t ç±»å对象ï¼ï¼å¯¹äºå®½å符æµå
å«åæç¶æï¼ std::mbstate_t ç±»å对象ï¼ãçªä¸å®½é¢å
æ°æå¼çæµæ é¢åã馿¬¡å° std::fwide çè°ç¨æ I/O 彿°å»ºç«é¢åï¼å®½ I/O 彿°ä»¤æµä¸ºå®½é¢åï¼çª I/O 彿°ä»¤æµä¸ºçªé¢åã䏿¦è®¾ç½®ï¼åé¢ååªè½ä»¥ std::freopen æ´æ¹ãä¸è½å¨å®½é¢åæµä¸è°ç¨çª I/O 彿°ï¼ä¸è½å¨çªé¢åæµä¸è°ç¨å®½ I/O 彿°ã宽 I/O 彿°å¨å®½ä¸å¤åèå符é´å¦å以è°ç¨ std::mbrtowc å std::wcrtomb 转æ¢ãä¸åäºç¨åºä¸åæ³çå¤åèåç¬¦ä¸²ï¼æä»¶ä¸çå¤åèå符å¯ä»¥å«æåµå ¥ç空å符ä¸ä¸å¿ 以åå§è¿ç§»ç¶æå¼å§æç»æã
POSIX è¦æ±å¨æµå¯¹è±¡çé¢ååæå®½æ¶ï¼å°å½åå®è£ ç C æ¬å°ç¯å¢ç LC_CTYPE å¹³é¢åå¨äºå ¶ä¸ï¼èä¸å°å®ç¨äºæ¤æµä¸çææå°æ¥ I/O ç´è³é¢åè¢«æ´æ¹ï¼æ å ³ä¹ä»»ä½å° std::setlocale çåç»§è°ç¨ã
äºè¿å¶ä¸ææ¬æ¨¡å¼
ææ¬æµæ¯è¢«ç»åè¿è¡ï¼é¶ææ´å¤å符å ä¸ç»æ¢ç '\n' ï¼çæåºå符åºåãæåä¸è¡æ¯å¦è¦æ±ç»æ¢ç '\n' æ¯å®ç°å®ä¹çãå¯è½å¿
é¡»å¨è¾å
¥ä¸è¾åºæ¶æ·»å ã忢æå é¤å符ï¼ä»¥ç¬¦å OS ä¸çè¡¨ç¤ºææ¬ï¼å°¤å
¶æ¯ Windows OS ä¸ç C æµå¨è¾åºæ¶å° \n 转æ¢ä¸º \r\n ï¼è¾å
¥æ¶å° \r\n 转æ¢ä¸º \n ï¼ã
ä» è¥ä¸åæ¡ä»¶å ¨ä¸ºçï¼ä»ææ¬æµè¯»åçæ°æ®æä¿è¯ä¸å åååºå°è¯¥ææ¬æµè æ¯è¾ç¸çï¼
- æ°æ®åªç±æå°åç¬¦åæ§å¶å符
\tå\nç»æï¼å°¤å ¶æ¯ Windows OS ä¸ï¼å符'\0x1A'ç»æ¢è¾å ¥ï¼ - 没æ \n ç«å³åéç©ºæ ¼ç¬¦ï¼ç«å³å äº \n åå ¥çç©ºæ ¼ç¬¦å¯è½å¨è¯»åæ¶æ¶å¤±ï¼
- å°¾åç¬¦æ¯ \n
äºè¿å¶æµæ¯è½ééå°è®°å½å 鍿°æ®çæåºå符åºåãä»äºè¿å¶æµè¯»åçæ°æ®å§ç»ä¸å åååºå°è¯¥æµè æ¯è¾ç¸çãä» å 许å®ç°åéä¸äºç©ºåç¬¦å°æµç»å°¾ã宽äºè¿å¶æµä¸å¿ ç»æ¢äºåå§è¿ç§»ç¶æã
POSIX å®ç°ä¸è¾¨å«ææ¬ä¸äºè¿å¶æµï¼æ \n æä»»ä½å ¶ä»å符çç¹æ®æ å°ï¼ã
彿°
| å®ä¹äºå¤´æä»¶
<cstdio> | |
æä»¶è®¿é® | |
| æå¼æä»¶ (彿°) | |
| 以ä¸ååç§°æå¼æ¢åæµ (彿°) | |
| å
³éæä»¶ (彿°) | |
| å°è¾åºæµä¸å®é
æä»¶åæ¥ (彿°) | |
| å¨å®½å符 I/O åçªå符 I/O é´åæ¢æä»¶æµ (彿°) | |
| 为æä»¶æµè®¾ç½®ç¼å²åº (彿°) | |
| 为æä»¶æµè®¾ç½®ç¼å²åºä¸å
¶å¤§å° (彿°) | |
ç´æ¥è¾å ¥/è¾åº | |
| ä»æä»¶è¯»å (彿°) | |
| åå
¥æä»¶ (彿°) | |
æ æ ¼å¼è¾å ¥/è¾åº | |
åè/å¤åèå符 | |
| 仿件æµè·åå符 (彿°) | |
| 仿件æµè·åå符串 (彿°) | |
| ååç¬¦å°æä»¶æµ (彿°) | |
| ååç¬¦ä¸²å°æä»¶æµ (彿°) | |
| ä» stdin 读åå符 (彿°) | |
| (C++11 ä¸å¼ç¨)(C++14 ä¸ç§»é¤) |
ä» stdin 读åå符串 (彿°) |
| ååç¬¦å° stdout (彿°) | |
| ååç¬¦ä¸²å° stdout (彿°) | |
| æå符æ¾åæä»¶æµ (彿°) | |
宽å符 | |
| 仿件æµè·å宽å符 (彿°) | |
| 仿件æµè·å宽å符串 (彿°) | |
| å宽åç¬¦å°æä»¶æµ (彿°) | |
| å宽åç¬¦ä¸²å°æä»¶æµ (彿°) | |
| ä» stdin 读å宽å符 (彿°) | |
| å宽åç¬¦å° stdout (彿°) | |
| æå®½å符æ¾åæä»¶æµ (彿°) | |
ææ ¼å¼è¾å ¥/è¾åº | |
åè/å¤åèå符 | |
| ä» stdinãæä»¶æµæç¼å²åºè¯»åææ ¼å¼è¾å
¥ (彿°) | |
| (C++11)(C++11)(C++11) |
使ç¨å¯åå®åå表 ä» stdinãæä»¶æµæç¼å²åºè¯»åææ ¼å¼è¾å ¥ (彿°) |
| (C++11) |
æå°ææ ¼å¼è¾åºå° stdoutãæä»¶æµæç¼å²åº (彿°) |
| 使ç¨å¯åå®åå表 æå°ææ ¼å¼è¾åºå° stdoutãæä»¶æµæç¼å²åº (彿°) | |
宽å符 | |
| ä» stdinãæä»¶æµæç¼å²åºè¯»åææ ¼å¼å®½å符è¾å
¥ (彿°) | |
| (C++11)(C++11)(C++11) |
使ç¨å¯åå®åå表 ä» stdinãæä»¶æµæç¼å²åºè¯»åææ ¼å¼å®½å符è¾å ¥ (彿°) |
| æå°ææ ¼å¼å®½å符è¾åºå° stdoutãæä»¶æµæç¼å²åº (彿°) | |
| 使ç¨å¯åå®åå表æå° ææ ¼å¼å®½å符è¾åºå° stdoutãæä»¶æµæç¼å²åº (彿°) | |
æä»¶å¯»ä½ | |
| è¿åå½åæä»¶ä½ç½®æç¤ºå¨ (彿°) | |
| è·åæä»¶ä½ç½®æç¤ºå¨ (彿°) | |
| ç§»å¨æä»¶ä½ç½®æç¤ºå¨å°æä»¶ä¸çæå®ä½ç½® (彿°) | |
| ç§»å¨æä»¶ä½ç½®æç¤ºå¨å°æä»¶ä¸çæå®ä½ç½® (彿°) | |
| ç§»å¨æä»¶ä½ç½®æç¤ºå¨å°æä»¶èµ·å§ (彿°) | |
é误å¤ç | |
| æ¸
é¤é误 (彿°) | |
| æ£æ¥æä»¶å°¾ (彿°) | |
| æ£æ¥æä»¶é误 (彿°) | |
| æ¾ç¤ºå¯¹åºå½åé误çåç¬¦ä¸²äº stderr (彿°) | |
æä»¶ä¸çæä½ | |
| å 餿件 (彿°) | |
| éå½åæä»¶ (彿°) | |
| å建并æå¼ä¸ä¸ªä¸´æ¶ãèªå¨ç§»é¤çæä»¶ (彿°) | |
| è¿åä¸ä¸ªå¯ä¸ç¬æçæä»¶å (彿°) | |
ç±»å
| å®ä¹äºå¤´æä»¶
<cstdio> | |
| Â | |
| ç±»å | å®ä¹ |
| FILE | 对象类åï¼è¶³ä»¥ä¿ææ§å¶ C I/O æµæéçå ¨é¨ä¿¡æ¯ |
| fpos_t | 宿´éæ°ç»å¯¹è±¡ç±»åï¼è¶³ä»¥å¯ä¸æå®æä»¶ä¸çä½ç½®ï¼å å«å ¶å¤åèåæç¶æ |
| sizeof è¿ç®ç¬¦è¿åçæ ç¬¦å·æ´æ°ç±»å (typedef) | |
å®
| å®ä¹äºå¤´æä»¶
<cstdio> | |
| stdinstdoutstderr |
ä¸è¾å
¥æµå
³èå° FILE* ç±»åè¡¨è¾¾å¼ ä¸è¾åºæµå ³èç FILE* ç±»åè¡¨è¾¾å¼ ä¸é误è¾åºæµå ³èç FILE* ç±»åè¡¨è¾¾å¼ (å®å¸¸é) |
| EOF |
æ¥æ int ç±»ååè´å¼çæ´æ°å¸¸éè¡¨è¾¾å¼ (å®å¸¸é) |
| FOPEN_MAX |
è½åæ¶æå¼çæä»¶æ° (å®å¸¸é) |
| FILENAME_MAX |
è¦ä¿ææé¿åæ¯ææä»¶åç char æ°ç»æéçé¿åº¦ (å®å¸¸é) |
| BUFSIZ |
std::setbuf æç¨çç¼å²åºå¤§å° (å®å¸¸é) |
| _IOFBF_IOLBF_IONBF |
ç» std::setbuf çåæ°ï¼æç¤ºå
¨ç¼å² I/O ç» std::setbuf çåæ°ï¼æç¤ºè¡ç¼å² I/O ç» std::setbuf çåæ°ï¼æç¤ºæ ç¼å² I/O (å®å¸¸é) |
| SEEK_SETSEEK_CURSEEK_END |
ç» std::fseek çåæ°ï¼æç¤ºä»æä»¶èµ·å§å¯»ä½ ç» std::fseek çåæ°ï¼æç¤ºä»å½åæä»¶ä½ç½®å¯»ä½ ç» std::fseek çåæ°ï¼æç¤ºä»æä»¶å°¾å¯»ä½ (å®å¸¸é) |
| TMP_MAX |
std::tmpnam æè½çæçå¯ä¸æä»¶åçæå¤§æ°é (å®å¸¸é) |
| L_tmpnam |
ä¿æ std::tmpnam ç»æç char æ°ç»æéçå¤§å° (å®å¸¸é) |