num_get::do_get
呼叫會從字元序列的數值或布林值的虛擬函式。
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned short& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned int& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
參數
_First
字元範圍開頭的讀取數目。_Last
字元範圍的結尾讀取數目。_Iosbase
轉換使用旗標的 ios_base 。_State
failbit 的狀態 (請參閱 ios_base::iostate) 將會失敗。_Val
已讀取的值。
傳回值
Iterator,在讀取的值之後。
備註
第一個受保護的虛擬成員函式,
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long& _Val
) const;
比對開始在序列 [_First,_Last) 的 _First 時的順序元件之前,它會將完整,非空白的整數輸入欄位。 如果成功,則在 _Val將這個欄位轉換成其對等的值做為型別 long, 並儲存結果。 它會傳回指定以數字輸入欄位之外的 Iterator 第一個項目。 如果不是,函式則在 _Val 不儲存並在 state的 ios_base::failbit 。 它會傳回指定以有效的整數輸入欄位的所有前置字元以外的 Iterator 第一個項目。 在任何情況下,則為,如果傳回值等於 last,函式將在 state的 ios_base::eofbit 。
整數輸入欄位掃描函式使用相同的規則將為了符合和轉換一系列的 char 項目從檔案。 (這類 char 項目由簡單假設對應至型別 Elem 的對等項目,一對一對應,)。判斷對等掃描轉換規格如下所示:
如果 iosbase.ios_base::flags() & ios_base::basefield == ios_base::10 月,轉換規格是 lo。
如果 iosbase.flags() & ios_base::basefield == ios_base::hex,轉換規格是 lx。
如果 iosbase.flags() & ios_base::basefield == 0,轉換規格是 li。
否則,轉換規格是 ld。
地區設定 Facet進一步取決於整數輸入資料行的格式呼叫中傳回的facuse_facet<numpunct<Elem>(iosbase.ios_base::getloc())。 尤其是:
fac.numpunct::grouping() 判斷數字如何在任何小數點左邊分組
fac.numpunct::thousands_sep() 判斷在任何小數點左邊分隔數字群組的序列。
如果 fac.thousands_sep() 執行個體不在數值欄位中輸入時,不會強制群組的條件約束。 否則, fac.grouping() 對所有群組的條件約束會強制執行,並移除分隔符號,在掃描轉換發生之前。
第四個受保護的虛擬成員函式:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long& _Val
) const;
正常運作方式和第一個增益集的相同,不過,前者會 lu取代 ld 之轉換規格。 如果成功。 _Val值的會將數字輸入欄位轉換為型別 unsigned long 的值和存放區。
第五個受保護的虛擬成員函式:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long long& _Val
) const;
正常運作方式和第一個增益集的相同,不過,前者會 lld取代 ld 之轉換規格。 如果成功。 _Val值的會將數字輸入欄位轉換為型別 long long 的值和存放區。
第六個受保護的虛擬成員函式:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
unsigned long long& _Val
) const;
正常運作方式和第一個增益集的相同,不過,前者會 llu取代 ld 之轉換規格。 如果成功。 _Val值的會將數字輸入欄位轉換為型別 unsigned long long 的值和存放區。
第七個受保護的虛擬成員函式:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
float& _Val
) const;
正常運作方式和第一個增益集的相同,不過,前者竭力符合完整,非空白的浮點輸入欄位。 fac.numpunct::decimal_point() 判斷小數位數分隔整數數字的序列。 對等掃描轉換規範是 lf。
第八個受保護的虛擬成員函式:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
double& _Val
) const;
正常運作方式和第一個增益集的相同,不過,前者竭力符合完整,非空白的浮點輸入欄位。 fac.numpunct::decimal_point() 判斷小數位數分隔整數數字的序列。 對等掃描轉換規範是 lf。
第九個受保護的虛擬成員函式:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
long double& _Val
) const;
正常運作方式和第八相同,但是有一點例外,就是對等掃描轉換規範是 Lf。
第九個受保護的虛擬成員函式:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
void *& _Val
) const;
相同的行為,不同的是,第一個對等掃描轉換規範是 p。
最後 (第一個) 受保護的虛擬成員函式:
virtual iter_type do_get(
iter_type _First,
iter_type _Last,
ios_base& _Iosbase,
ios_base::iostate& _State,
bool& _Val
) const;
正常運作方式和第一個增益集的相同,不過,前者竭力符合完整,非空白的布林值輸入欄位。 如果成功。 _Val值會轉換成布林值輸入欄位轉換為型別 bool 的值和存放區。
布林值輸入欄位是下列兩種形式中的一個。 如果 iosbase.flags() & ios_base::boolalpha 是錯誤的,它會做為整數輸入欄位,但不同的是,已轉換的值必須是 0 (錯誤) 或 1 (如果是 true)。 否則,這個序列必須符合 fac.numpunct::falsename() (錯誤),或 fac.numpunct::truename() (為 true)。
範例
取得。請參閱方法的範例,虛擬成員函式。 do_get呼叫。
需求
標題: <locale>
命名空間: std