虚函数调用表示为提取从一个货币值的字符序列的数值。
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
输入解决的序列开始的迭代器是转换。_Last
输入解决序列末尾的迭代器是转换。_Intl
货币符号的布尔值指示类型预期顺序:true,如果,国际 false,如果国内。_Iosbase
格式标志,则会设置货币符号是可选的;否则,需要。_State
设置流状态的相应位掩码元素,可以根据选择的操作成功。_Val
存储转换序列的字符串。
返回值
解决超出货币输入域之外的输入迭代器的第一个元素。
备注
第虚拟的受保护成员函数尝试匹配序列开始。首先 [_First,_Last) 的时序组件,直到 Dictionary/Words/Recognized 完整,非空的货币输入字段。 如果成功,它转换此字段更改为一个减号,可选的一个或多个十进制数字序列 (–) 后面,表示量并存储在 string_type_Val对象的结果。 它返回指定了输入货币域之外的迭代器的第一个元素。 否则,函数在 _Val 中存储一个空序列并设置 _State的 ios_base::failbit。 它返回指定了有效的货币输入域的任何前缀的迭代器。第一个元素。 在任何情况下,如果,返回值等于 _Last,函数设置 _State的 ios_base::eofbit。
第二个虚拟的受保护成员函数行为中的 _Val值与第一个相同,不同之处在于,如果成功,它转换可选择进行签名的数字序列对值类型 long double 和存储。
区域设置方面取决于一种货币。输入字段的格式有效的调用返回fac 的 use_facet <moneypunct<CharType,intl>>(iosbase。getloc)。
尤其是在下列情况下:
fac。negative_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)。 其余元素匹配在货币输入范围末尾。 如果两字符串没有在货币输入域匹配下元素的第一个元素,符号字符串采用为空,因此符号为正值。
如果 iosbase。标志 &showbase 不为零,字符串 fac。curr_symbol 必须与元素等于 money_base::symbol 出现格式模式的位置。 否则,如果,money_base::symbol 出现在格式模式的结尾,并且,如果,符号字符串的元素只剩下不满足,货币符号不匹配。 否则,货币符号选择匹配。
如果 fac不存在实例。thousands_sep 在货币输入域 (其中元素等于 money_base::value 出现格式模式),对的约束不分组的值部分发生。 否则,分组约束由 fac对。分组 强制。 注意生成的数字序列表示低序 fac的整数。frac_digits 数字在小数点右侧考虑。
任意字符匹配元素等于 money_base::space 出现格式模式的位置,除了在格式模式结束时之外,如果,出现。 否则,生成空白不匹配。 元素 ch 视为空白,或者 use_facet <ctype<CharType> >(iosbase。getloc)。是(ctype_base::space),ch为 true。
示例
针对 捕获参见示例,调用 do_get。
要求
页眉: <区域设置>
命名空间: std