std::num_get_C++中文网

std::num_get 封装分析数值的字符串表示的规则。特别是支持类型 boolunsigned shortunsigned intlongunsigned longlong longunsigned long longfloatdoublelong doublevoid* 。标准格式化输入运算符(如 cin >> n; )用 I/O 流的 locale 的 std::num_get 平面分析数字的文本表示。

cpp/locale/locale/facet

std-num get-inheritance.svg

继承图

类型要求

特化

标准库提供二个独立(不依赖本地环境)的全特化和二个部分特化:

定义于头文件 <locale>

std::num_get<char> 创建数字的窄字符串分析
std::num_get<wchar_t> 创建数字的宽字符串分析
std::num_get<char, InputIt> 创建数字的使用定制输入迭代器的窄字符串分析
std::num_get<wchar_t, InputIt> 创建数字的使用定制输入迭代器的宽字符串分析

另外, C++ 程序中构造的每个 locale 对象都实装这些特化的其自身(本地环境限定)版本。

成员类型

 
成员类型 定义
char_type CharT
iter_type InputIt

成员函数

构造新的 num_get 平面
(公开成员函数)
析构 num_get 平面
(受保护成员函数)
调用 do_get
(公开成员函数)

成员对象

static std::locale::id id

locale 的 id
(公开成员对象)

受保护成员函数

示例

输出:

Parsing 1.234.567,89 as double gives 1234567.890000 in de_DE locale and 1.234000 in en_US
parsing 1,234,567.89 as double using raw en_US facet gives 1234567.890000

参阅