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
    读取的值。

返回值

在值将来的迭代器。

备注

第虚拟的受保护成员函数,

virtual iter_type do_get(

iter_type _First,

iter_type _Last,

ios_base& _Iosbase,

ios_base::iostate& _State,

long& _Val

) const;

匹配序列开始在 [_First, _Last)_First 的时序组件,直到 Dictionary/Words/Recognized 完整,非空的整数输入字段。 如果成功,它转换此字段对其类型 long, 的等效值并存储在 _Val的结果。 它返回指定除数值输入域之外的迭代器的第一个元素。 否则,函数没有存储 _Val 中并将 state的 ios_base::failbit。 它返回指定了有效的整数输入域的任何前缀的迭代器。第一个元素。 在任何情况下,如果,返回值等于 last,函数设置 state的 ios_base::eofbit。

整数输入域通过扫描函数使用的规则相同转换搜索和转换一系列 char 元素从文件。(每一个这样 char 元素由简单假定映射到 Elem 类型的等效元素,一对一,映射。)确定等效的扫描规范转换如下:

ios_base::flags10 月规范,如果 iosbase.() & ios_base::basefield == ios_base::转换为 lo。

如果 iosbase.flags() & ios_base::basefield == ios_base::hex规范,转换为 lx。

如果 iosbase.flags() & ios_base::basefield == 0规范,转换为 li。

否则,将规范为 ld。

区域设置方面 进一步确定整数输入字段的格式调用返回的 facuse_facetnumpunctios_base::getloc <<Elem>(iosbase. ())。 尤其是在下列情况下:

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

布尔输入域具有两种形式之一。 boolalpha 如果 iosbase.flags() & ios_base::为 false,则这是相同为整数输入域,除此之外,转换的值必须是 0 (对于) 或 1 (错误为 true)。 否则,匹配序列必须 fac.numpunct::falsename(错误),() 为 fac.或() 为 true)。numpunct::truename(

示例

针对 捕获参见示例,虚成员函数由 do_get调用。

要求

页眉: <区域设置>

命名空间: std

请参见

参考

num_get 类