名稱空間
變體
操作

std::ios_base

來自 cppreference.com
< cpp‎ | io
 
 
 
 
定義於標頭檔案 <ios>
class ios_base;

ios_base 類是一個多用途類,作為所有 I/O 流類的基類。它維護幾種型別的資料:

1) 狀態資訊:流狀態標誌。
2) 控制資訊:控制輸入和輸出序列格式以及內嵌區域設定的標誌。
3) 私有儲存:索引可擴充套件資料結構,允許 longvoid* 成員,可以實現為兩個任意長度陣列、一個兩元素結構體陣列或另一個容器。
4) 回撥:在 imbue()std::basic_ios::copyfmt()~ios_base() 中呼叫的任意數量的使用者定義函式。

典型的實現包含與 fmtflagsiostateopenmodeseekdir 的所有值相對應的成員常量(如下所示),維護當前精度、寬度和格式標誌、異常掩碼、緩衝區錯誤狀態、儲存回撥的可調整大小容器、當前內嵌區域設定、私有儲存以及用於 xalloc() 的靜態整數變數。

目錄

[編輯] 成員函式

構造物件
(protected member function) [編輯]
析構物件
(virtual public member function) [編輯]
賦值給流
(public member function) [編輯]
格式化
管理格式標誌
(public member function) [編輯]
設定特定格式標誌
(public member function) [編輯]
清除特定格式標誌
(public member function) [編輯]
管理浮點運算的十進位制精度
(public member function) [編輯]
管理欄位寬度
(public member function) [編輯]
區域設定
設定區域設定
(public member function) [編輯]
返回當前區域設定
(public member function) [編輯]
內部可擴充套件陣列
[靜態]
返回一個程式範圍內的唯一整數,可安全用作 pword()iword() 的索引
(public static member function) [編輯]
如有必要,調整私有儲存的大小,並訪問給定索引處的 long 元素
(public member function) [編輯]
如有必要,調整私有儲存的大小,並訪問給定索引處的 void* 元素
(public member function) [編輯]
雜項
註冊事件回撥函式
(public member function) [編輯]
設定 C++ 和 C I/O 庫是否可互操作
(public static member function) [編輯]

成員類

流異常
(public member class) [編輯]
初始化標準流物件
(public member class) [編輯]

成員型別和常量

型別 解釋
流開啟模式型別

還定義了以下常量

常量 解釋[編輯]
app 在每次寫入前定位到流末尾[編輯]
二進位制 二進位制模式開啟[編輯]
in 為讀取開啟[編輯]
out 為寫入開啟[編輯]
trunc 開啟時丟棄流的內容[編輯]
ate 開啟後立即定位到流末尾[編輯]
noreplace (C++23) 以獨佔模式開啟[編輯]

(typedef) [編輯]
格式化標誌型別

還定義了以下常量

常量 解釋[編輯]
dec 對整數 I/O 使用十進位制基數:參閱 std::dec[編輯]
oct 對整數 I/O 使用八進位制基數:參閱 std::oct[編輯]
hex 對整數 I/O 使用十六進位制基數:參閱 std::hex[編輯]
basefield dec | oct | hex。用於掩碼操作[編輯]
left 左對齊(在右側新增填充字元):參閱 std::left[編輯]
right 右對齊(在左側新增填充字元):參閱 std::right[編輯]
internal 內部對齊(在內部指定點新增填充字元):參閱 std::internal[編輯]
adjustfield left | right | internal。用於掩碼操作[編輯]
scientific 使用科學記數法生成浮點型別,如果與 fixed 結合,則使用十六進位制記數法:參閱 std::scientific[編輯]
fixed 使用定點記數法生成浮點型別,如果與 scientific 結合,則使用十六進位制記數法:參閱 std::fixed[編輯]
floatfield scientific | fixed。用於掩碼操作[編輯]
boolalpha 以字母數字格式插入和提取 bool 型別:參閱 std::boolalpha[編輯]
showbase 為整數輸出生成指示數字基數的 字首,在貨幣 I/O 中要求貨幣指示符:參閱 std::showbase[編輯]
showpoint 對於浮點數輸出,無條件生成小數點字元:參閱 std::showpoint[編輯]
showpos 為非負數字輸出生成 + 字元:參閱 std::showpos[編輯]
skipws 在某些輸入操作前跳過前導空白字元:參閱 std::skipws[編輯]
unitbuf 在每次輸出操作後重新整理輸出:參閱 std::unitbuf[編輯]
uppercase 在某些輸出操作中,將某些小寫字母替換為其大寫等效項:參閱 std::uppercase[編輯]

(typedef) [編輯]
流狀態型別

還定義了以下常量

常量 解釋[編輯]
goodbit 無錯誤[編輯]
badbit 不可恢復的流錯誤[編輯]
failbit 輸入/輸出操作失敗(格式化或提取錯誤)[編輯]
eofbit 關聯的輸入序列已到達檔案末尾[編輯]

(typedef) [編輯]
定位方向型別

還定義了以下常量

常量 解釋[編輯]
beg 流的開始[編輯]
end 流的結束[編輯]
cur 流位置指示器的當前位置[編輯]

(typedef) [編輯]
指定事件型別
(enum) [編輯]
回撥函式型別
(typedef) [編輯]
已棄用的成員型別
型別 解釋
io_state (deprecated) 可像 iostate 一樣使用的整數型別
open_mode (deprecated) 可像 openmode 一樣使用的整數型別
seek_dir (deprecated) 可像 seekdir 一樣使用的整數型別
streamoff (deprecated) 可像 off_type 一樣使用的未指定型別,不一定是 std::streamoff
streampos (deprecated) 可像 pos_type 一樣使用的未指定型別,不一定是 std::streampos
(C++17 前)

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 1357
(N3110)
C++98 std::ios_base 為型別 openmodefmtflags
iostate 定義了 operator~operator&
operator|,違反了 BitmaskType 的要求[1]
移除了這些定義
  1. 一個 BitmaskType 需要自身支援位操作。位操作支援不應由外部提供。

[編輯] 參閱

管理任意流緩衝區
(類模板) [編輯]
English 日本語 中文(简体) 中文(繁體)