程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++ 頭文件系列(ios)

C++ 頭文件系列(ios)

編輯:關於C++

C++ 頭文件系列(ios)。本站提示廣大學習愛好者:(C++ 頭文件系列(ios))文章只能為提供參考,不一定能成為您想要的結果。以下是C++ 頭文件系列(ios)正文


1 簡介

我們都知道,平常常用的那些規范流,諸如iostream、ofstream、ifstream等等,其實都是對應的basic_XXX模版的實例類。 而這些basic_XXX類模版又都是承繼自同一個基類模版----basic_ios

2 basic_ios模版

定義這個基類模版應該是出於可重用的目的。

2.1 成員類型
  • char_type : 字符類型,即第一個模版參數。
  • char_traits : 萃取器,即第二個模版參數(默許為位於< string >頭文件內的char_traits萃取器)。
2.2 結構器

該模版的結構函數只需求兩個類型:charT、traits。 一個是字符類型,另一個是字符萃取器,兩者都只和字符有關。

2.3 形態標志函數
  • good : 檢測流形態能否為good。
  • eof : 檢測end-of-file 標志位能否被置為1,即能否到文件末尾。
  • fail : 檢測 fail標志位 或許 bad標志位能否被置為1,即先前能否有操作失敗。
  • bad : 檢測bad 標志位能否被置為1, 即先前能否有操作招致了嚴重錯誤(致使流的完好性遭到毀壞)。
  • operator !、operator bool : 檢測流的形態能否正常,即能否有操作失敗或招致了嚴重錯誤(fail or bad)。
  • rdstate、setstate : 前往或許設置一切形態標志位。
  • clear : 清楚形態標志位。
2.4 格式化函數
  • coptfmt : 將給定的basic_ios對象的外部格式copy給本身。
  • fill : 前往、設置填充字符(當設定的寬度大於實踐輸入寬度時,才會呈現填充狀況)。
2.5 其他函數
  • exceptions : 前往、設置異常掩碼(設置之後,對應的形態標志位被置1時,會拋出異常)。
  • imbue : 將locale灌輸進流,這個調用會觸發imbue_event事情。
  • tie : 前往先前的關聯輸入流、設置新的關聯輸入流。"The tied stream is an output stream object which is flushed before each i/o operation in this stream object." 也就是說,每次本身的輸出輸入操作發作前,該tied的流都回把緩沖區的內容輸入。 默許狀況下,規范cin和cerr流與cout相關連,所以每次在鍵盤輸出時,“黑框”都回把輸出顯示出來。
  • rdbuf : 前往、設置basic_ios外部的stream buffer。
  • narrow : 將傳入字符(通常是寬字符)窄化(narrow)成本身模版類的char_type類型字符。
  • widen : 將傳入字符寬化(widen)成本身模版類的char_type類型字符(通常是寬字符)。
3 ios_base類

這個類很特殊,它是basic_ios類模版的基類,並且它的結構函數是公有的。 這就意味著它在設計之初就是外部運用,只用於派生,不能被用戶聲明運用。

3.1 格式化函數
  • flags : 前往或許重新設置一切格式標志符。
  • setf : 設置特定類別的格式標志符。
  • unsetf : 肅清特定的格式標志符。
  • precision : 設置浮點數精度。
  • width : 設置域寬。
3.2 本地化函數
  • imbue : “灌入”區域設置。
  • getloc : 前往以後區域設置。
3.3 有關internal array的函數

該類外部維護了一個internal extensible array作為通用數組,並且定義了三個私有函數協助用戶運用它們。

  • xalloc(靜態) : 前往一個extensible array的新下標。
  • iword : 前往數組中對應給定下標的long元素。
  • pword : 前往數組中給定下標對應的元素指針(void*)。
3.4 事情支持

ios_base支持事情這一概念,但只支持無限的事情。

3.4.1 event枚舉類
  • copyfmt_event : 當調用copyfmt時發作。
  • erase_event : 當stream的析構器被調用時。
  • imbue_event : 當調用ios_base::imbue時。

3.4.2 event_callback類型

ios_base以回調函數的方式來支持事情。 回調函數必需滿足以下類型void (*event_callback) (event en, ios_base& obj, int index); 其中obj是觸發事情的stream對象,index是注冊回調函數時的傳入的index參數。

3.4.3 注冊事情回調函數
  • register_callback
3.5 其他

3.5.1 其他函數
  • sync_with_stdio(靜態) : 能否同步C++輸出輸入流和C輸出輸入對象(stdin、stdout、stderr)。

3.5.2 其他成員類型
  • fmtflags : 流格式化標志符類型。
  • iostate : 流形態標志符類型。
  • openmode : 流翻開形式標志符類型。
  • seekdir : 流定位方向標志符類型。

3.5.3 其他成員類
  • failure : 承繼自std::exception的異常類,用來作為輸出輸入流的根本異常類。
  • Init : 八個規范流實例化的控制器。
4 Error Reporting

該頭文件也提供了一定的錯誤處置功用。

4.1 io_errc 枚舉類

這個枚舉類定義了input/output 的錯誤狀況。 C++規范只需求該枚舉類定義stream枚舉,但詳細的庫可以自己完成額定的枚舉。

4.2 make_error_code函數

該函數從給定的io_errc枚舉構建出錯誤碼(error_code對象)。

4.3 make_error_condition函數

該函數從給定的io_errc枚舉構建出錯誤狀況(error_condition對象)。

4.4 iostream_category函數

前往一個error_category對象,該對象類型與io_errc枚舉類對應的error_condition的錯誤類別相關聯。

5 Manipulators(全局函數)
  • boolalpha : 將bool變量字符化(包括輸出輸入),即1->true,0->false。
  • showbase : 輸入時,顯示數字的前置基數,即十六進制->0x, 八進制->0, 十進制無前置基數。
  • showpoint : 顯示浮點數的小數點。
  • showpos : 顯示正整數的“+”號。
  • skipws : 跳過一切前置的white-space。
  • unitbuf : 每次向流拔出內容時,輸入緩沖區的內容。
  • uppercase : 一切小寫字母都用大寫替代。
  • dec、hex、oct : 辨別用十進制、十六進制、八進制來表示整數。
  • fixed、scientific : 辨別用固定點小數法、迷信計數法來表示浮點數。
  • internal、left、right : 辨別使數字居中、左對齊、右對齊,其中居中時會依據狀況適當的拔出填充字符。
    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved