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)的时序组件,直到识别的完整,非空货币输入字段。如果成功,它会将此字段为一个减号,可选择的一个或多个十进制数字序列(–)之后,表示数量并存储在 string_type 对象 _Val的结果。它返回指定在货币输入字段以外的迭代器第一个元素。否则,函数在 _Val 存储一个空序列并在 _State的 ios_base::failbit。它返回指定在有效的货币输入字段的所有书名之外的迭代器第一个元素。无论如何,则为;返回值等于 _Last,该函数将 _State的 ios_base::eofbit

第二个虚拟保护的成员函数行为在 _Val值相同的第一个相同,不同之处在于,如果成功,则它会将选择符号位序列转换为类型 long double 的值和存储。

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

尤其是在下列情况下:

  • facneg_format 确定字段元素出现的顺序。

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

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

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

  • fac分组 确定num如何在任何左侧分组小数点。

  • 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)。grouping 强制实施。请注意发生的数字顺序表示低序 fac的整数。frac_digits 十进制数字右侧考虑小数点。

任意空白匹配元素等于 money_base::space 显示格式模式的位置,以及在布局模式末尾外,因此,如果显示。否则,没有内部空格匹配。元素 ch 被视为空白,如果 use_facet <ctype<CharType> > (iosbasegetloc)。(ctype_base::spacech)是 true

示例

获取参见示例,调用 do_get

要求

标头: <locale>

命名空间: std

请参见

参考

money_get Class