共用方式為


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,在讀取值之後。

備註

第一個虛擬 protected 成員函式,

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() 對所有群組條件約束會強制執行,而分隔符號在掃描轉換發生之前被移除。

第四個虛擬 protected 成員函式:

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 的值和存放區。

第五個虛擬 protected 成員函式:

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 的值和存放區。

第六個虛擬 protected 成員函式:

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 的值和存放區。

第七個虛擬 protected 成員函式:

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。

第八個虛擬 protected 成員函式:

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。

第九個虛擬 protected 成員函式:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long double& _Val

) const;

一般作業的第八個相同,但是有一點例外,就是對等掃描轉換規範是 Lf。

第九個虛擬 protected 成員函式:

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

void *& _Val

) const;

產生相同的行為,第一個,除了對等掃描轉換規範是 p。

最後 (第一) 虛擬 protected 成員函式:

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 (為 false) 或 1 (為 true)。 否則,序列必須符合 fac.numpunct::falsename() (為 false),或 fac.numpunct::truename() (為 true)。

範例

請參閱 取得範例,虛擬成員函式是由 do_get呼叫。

需求

標題: <地區設定>

命名空間: std

請參閱

參考

num_get 類別