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
    输入解决的序列开始的迭代器是转换。

  • _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 和存储。

区域设置方面取决于一种货币。输入字段的格式有效的调用返回facuse_facet <moneypunct<CharTypeintl>>(iosbasegetloc)。

尤其是在下列情况下:

  • facnegative_format 确定字段组件出现的顺序。

  • faccurr_symbol 确定构成货币符号元素的序列。

  • facpositive_sign 确定构成一个正号元素的序列。

  • facnegative_sign 确定构成一个减号元素的序列。

  • fac分组 确定数值如何在小数点左边任何组合。

  • facthousands_sep 确定在小数点左边数字分隔任何组的元素。

  • facdecimal_point 确定从部分数字分隔整数数字的元素。

  • facfrac_digits 中的任何重要部分确定小数点右侧的位数。 当分析使用多部分数字的货币金额比为由 frac_digits调用时,do_get 停止分析在使用最多 frac_digits 个字符之后。

如果符号字符串 (facnegative_signfacpositive_sign) 具有多个元素,因此,只有第一元素匹配元素等于 money_base::sign 出现格式模式 (facneg_format)。 其余元素匹配在货币输入范围末尾。 如果两字符串没有在货币输入域匹配下元素的第一个元素,符号字符串采用为空,因此符号为正值。

如果 iosbase标志 &showbase 不为零,字符串 faccurr_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> >(iosbasegetloc)。(ctype_base::space),chtrue

示例

针对 捕获参见示例,调用 do_get

要求

页眉: <区域设置>

命名空间: std

请参见

参考

money_get 类