money_get::do_get
虛擬函式呼叫擷取數值從代表一個貨幣值的字元順序。
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
bool _Intl,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
bool _Intl,
ios_base& _Iosbase,
ios_base::iostate& _State,
string_type& _Val
) const
參數
_First
輸入定址的 Iterator 要轉換的序列的開頭。_Last
輸入定址的 Iterator 要轉換的序列結尾。_Intl
表示貨幣符號的型別必須是布林值在序列: true ,如果國際, false ,如果國家/地區內。_Iosbase
格式旗標,則集合表示貨幣符號是選擇性的;否則,需要。_State
設定資料流狀態的適當位元遮罩項目,根據可能的選取作業成功。_Val
存放已轉換的字串。
傳回值
輸入定址的 Iterator 在貨幣輸入欄位之外的第一個項目。
備註
第一個虛擬 protected 成員函式會嘗試比對時序元件開始先序列 [_First, _Last),直到辨識完成,非空的貨幣輸入欄位。 如果成功,則會將這個欄位設定為減號,選擇性的一個或多個十進位數字序列 (–) 之後,代表數量和儲存在 string_type 物件 _Val的結果。 它會將貨幣輸入欄位之外的 Iterator 第一個項目。 否則,函式在 _Val 儲存空序列並設定 _State的 ios_base::failbit 。 它會將有效貨幣輸入欄位的所有前置之外 Iterator 第一個項目。 在任何情況下,,如果傳回值等於 _Last, _State的函式會設定 ios_base::eofbit 。
第二個虛擬 protected 成員函式一般作業在 _Val值的第一個與相同,不過,如果成功,則會轉換選擇性符號位元序列為型別 long double 的值和存放區。
地區設定 facet 是由一個貨幣輸入欄位的格式有效的呼叫所傳回的facuse_facet <moneypunct<CharType, intl>>(iosbase。getloc)。
尤其是:
fac。neg_format 判斷欄位元件中發生的順序。
fac。curr_symbol 判斷撰寫貨幣符號項目的序列。
fac。positive_sign 判斷撰寫正號項目的序列。
fac。negative_sign 判斷撰寫負號項目的序列。
fac。群組 判斷數字如何在任何小數點左邊的群組。
fac。thousands_sep 判斷在任何小數點左邊分隔數字群組的項目。
fac。decimal_point 判斷小數位數分隔整數數字的項目。
fac。frac_digits 在任何小數點右邊判斷重大的小數位數數目。 當解析與多個小數位數的貨幣數量超過為由 frac_digits期間呼叫 do_get ,停止解決消耗最多 frac_digits 字元之後。
如果標記字串 (fac。negative_sign 或 fac。positive_sign) 有一個以上的項目,,只有第一個項目相符項目等於 money_base::sign 出現在格式模式的地方 (fac。neg_format)。 其餘項目會符合貨幣輸入欄位末端。 如果兩個字串未在貨幣輸入欄位與下一個項目的第一個項目,標記字串被接受,因為 null 和這個標記為正數。
如果 iosbase。旗標。 &showbase 為非零,字串 fac。curr_symbol 必須符合項目等於 money_base::symbol 出現在格式模式的地方。 否則,則為,如果 money_base::symbol 會在格式模式關閉時,,和,如果標記字串的項目仍要符合,貨幣符號不相符。 否則,貨幣符號選擇性相符。
如果 fac沒有執行個體。thousands_sep 在貨幣輸入欄位 (其中項目等於 money_base::value 出現在格式模式),加上條件約束的未分組的值部分時發生。 否則,所有群組條件約束由 fac施加了。grouping 會強制執行。 請注意產生的數字序列表示低序位 fac的整數。frac_digits 的十進位數字為小數點右邊列入考量。
選擇性泛空白字元相符項目等於 money_base::space 出現在格式模式中,以及格式模式結尾之外,則為,否則出現在中。 否則,內部泛空白字元不相符。 項目 ch 視為泛空白字元,否則 use_facet <ctype<CharType> >(iosbase。getloc)。是(ctype_base::space, ch) 是 true。
範例
請參閱 取得範例,呼叫 do_get。
需求
標題: <地區設定>
命名空間: std