C++ 頭文件系列(istream)。本站提示廣大學習愛好者:(C++ 頭文件系列(istream))文章只能為提供參考,不一定能成為您想要的結果。以下是C++ 頭文件系列(istream)正文
其實叫它istream有點不適宜,由於該頭文件不只定義了istream
,還定義了iostream
。
basic_istream承繼自basic_ios,也是其它輸出流的基類。
2.1 sentry類The class sentry defines a class that is responsible for doing exception safe prefix and suffix operations.
sentry是哨兵的意思,規范給出的解釋是,這個類是為了做一些異常平安的前置和後置任務。 一切格式化輸出函數在執行前都會結構一個sentry對象,假如該對象結構成功,這些函數會持續執行; 否則,格式化函數會依據狀況設置badbit位,並拋出異常。
2.2 格式化輸出函數istream::sync
-> basic_streambuf::pubsync
-> basic_streambuf::sync
。 因而要從底層函數的語義去了解它:將緩沖區的內容與關聯的字符流同步。 因而,假如是規范輸出流,則是將緩沖區的內容清空,堅持與鍵盤輸出的同步; 假如是文件流,則是將緩沖區內容與文件內容同步。該模版只是復雜地多承繼了basic_istream和basic_ostream,並定義了幾個protected的挪動賦值運算符和swap成員函數。
4 manipulatorstypedef basic_istream<char> istream
typedef basic_istream<wchar_t> wistream
typedef basic_iostream<char> iostream
typedef basic_iostream<wchar_t> wiostream