名稱空間
變體
操作

std::basic_ios

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

    class CharT,
    class Traits = std::char_traits<CharT>
> class basic_ios

    : public std::ios_base

std::basic_ios 提供了與具有 std::basic_streambuf 介面的物件進行互動的工具。多個 std::basic_ios 物件可以引用同一個實際的 std::basic_streambuf 物件。

cpp/io/ios basestd-basic ios-inheritance.svg

繼承圖

提供了用於常見字元型別的幾個 typedef

定義於標頭檔案 <ios>
型別 定義
std::ios std::basic_ios<char>
std::wios std::basic_ios<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[編輯]

[編輯] Public 成員函式

構造物件
(public 成員函式) [編輯]
析構物件
(virtual public 成員函式) [編輯]
operator=
複製賦值運算子已被刪除
(公開成員函式)
狀態函式
檢查是否沒有發生錯誤,即 I/O 操作可用
(public 成員函式) [編輯]
檢查是否已到達檔案末尾
(public 成員函式) [編輯]
檢查是否發生錯誤
(public 成員函式) [編輯]
檢查是否發生不可恢復的錯誤
(public 成員函式) [編輯]
檢查是否發生錯誤(fail() 的同義詞)
(public 成員函式) [編輯]
檢查是否沒有發生錯誤(!fail() 的同義詞)
(public 成員函式) [編輯]
返回狀態標誌
(public 成員函式) [編輯]
設定狀態標誌
(public 成員函式) [編輯]
修改狀態標誌
(public 成員函式) [編輯]
格式化
複製格式化資訊
(public 成員函式) [編輯]
管理填充字元
(public 成員函式) [編輯]
雜項
管理異常掩碼
(public 成員函式) [編輯]
設定區域設定
(public 成員函式) [編輯]
管理關聯的流緩衝區
(public 成員函式) [編輯]
管理繫結的流
(public 成員函式) [編輯]
窄化字元
(public 成員函式) [編輯]
寬化字元
(public 成員函式) [編輯]

[編輯] Protected 成員函式

初始化預設構造的 std::basic_ios
(protected 成員函式) [編輯]
(C++11)
從另一個 std::basic_ios 移動,除了 rdbuf
(protected 成員函式) [編輯]
(C++11)
與另一個 std::basic_ios 交換,除了 rdbuf
(protected 成員函式) [編輯]
替換 rdbuf 而不清除其錯誤狀態
(protected 成員函式) [編輯]

繼承自 std::ios_base

成員函式

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

成員型別和常量

型別 解釋
流開啟模式型別

還定義了以下常量

常量 解釋[編輯]
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) [編輯]

[編輯] 註釋

std::basic_ios 的直接實現只儲存以下成員(它們都依賴於模板引數,因此不能作為 std::ios_base 的一部分):

  • 填充字元(參見 fill()
  • 繫結的流指標(參見 tie()
  • 關聯的流緩衝區指標(參見 rdbuf())。

實際實現因平臺而異:

Microsoft Visual Studio 只儲存這三個成員。

LLVM libc++ 儲存的成員少 1 個:它將 rdbuf 指標作為 ios_basevoid* 成員維護。

GNU libstdc++ 儲存了 4 個額外的成員:三個快取的 facet 和一個指示填充已初始化的標誌。