C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- std::locale
- std::use_facet
- std::has_facet
- std::isspace(std::locale)
- std::isblank(std::locale)
- std::codecvt
- std::wstring_convert
- std::iscntrl(std::locale)
- std::isupper(std::locale)
- std::islower(std::locale)
- std::isalpha(std::locale)
- std::isdigit(std::locale)
- std::ispunct(std::locale)
- std::isxdigit(std::locale)
- std::isalnum(std::locale)
- std::isprint(std::locale)
- std::isgraph(std::locale)
- std::toupper(std::locale)
- std::tolower(std::locale)
- std::wbuffer_convert
- std::ctype_base
- std::codecvt_base
- std::messages_base
- std::time_base
- std::money_base
- std::ctype
- std::ctype<char>
- std::collate
- std::messages
- std::time_get
- std::time_put
- std::num_get
- std::num_put
- std::numpunct
- std::money_get
- std::money_put
- std::moneypunct
- std::ctype_byname
- std::codecvt_byname
- std::messages_byname
- std::collate_byname
- std::time_get_byname
- std::time_put_byname
- std::numpunct_byname
- std::moneypunct_byname
- std::codecvt_utf8
- std::codecvt_utf16
- std::codecvt_utf8_utf16
- std::codecvt_mode
- std::setlocale
- std::localeconv
- std::lconv
- LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
- 注释
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
std::lconv
定义于头文件 <clocale>
|
||
struct lconv; |
||
类 std::lconv
含有 C 本地环境定义的数值和货币格式化规则。此结构体的对象可由 std::localeconv 获得。 std::lconv
的成员为 char 类型和 char* 类型值。除了 decimal_point
,每个 char* 成员都可以指向空字符(即为空 C 字符串)。 char 类型成员均为非负数,而且若任一者在当前 C 本地环境中不可用,则为 CHAR_MAX 。
成员对象
非货币数值格式化参数
char* decimal_point |
用作小数点的字符 (公开成员对象) |
char* thousands_sep |
用于在小数点前分隔数位组的字符 (公开成员对象) |
char* grouping |
字符串,其元素指示数位组的大小 (公开成员对象) |
货币数值格式化参数
char* mon_decimal_point |
用作小数点的字符 (公开成员对象) |
char* mon_thousands_sep |
用于在小数点前分隔数位组的字符 (公开成员对象) |
char* mon_grouping |
字符串,其元素指示数位组的大小 (公开成员对象) |
char* positive_sign |
用于指示非负货币量的字符串 (公开成员对象) |
char* negative_sign |
用于指示负货币量的字符串 (公开成员对象) |
本地货币数值格式化参数
char* currency_symbol |
当前 C 本地环境中用于通货的符号 (公开成员对象) |
char frac_digits |
货币量中小数点后显示的位数 (公开成员对象) |
char p_cs_precedes |
若 currency_symbol 置于非负值前则为 1 ,于其后则为 0 (公开成员对象) |
char n_cs_precedes |
若 currency_symbol 置于负值前则为 1 ,于其后则为 0 (公开成员对象) |
char p_sep_by_space |
指示 currency_symbol 、 positive_sign 及非负货币值的分隔 (公开成员对象) |
char n_sep_by_space |
指示 currency_symbol 、 positive_sign 及负货币值的分隔 (公开成员对象) |
char p_sign_posn |
指示非负货币值中 positive_sign 的位置 (公开成员对象) |
char n_sign_posn |
指示负货币值中 negative_sign 的位置 (公开成员对象) |
国际货币数值格式化参数
char* int_curr_symbol |
当前 C 本地环境中用作国际通货名的字符串 (公开成员对象) |
char int_frac_digits |
国际货币量中小数点后显示的位数 (公开成员对象) |
char int_p_cs_precedes (C++11) |
若 int_curr_symbol 置于非负值前则为 1 ,于其后则为 0 (公开成员对象) |
char int_n_cs_precedes (C++11) |
若 int_curr_symbol 置于负值前则为 1 ,于其后则为 0 (公开成员对象) |
char int_p_sep_by_space (C++11) |
指示 int_curr_symbol 、 positive_sign 及非负国际货币值的分隔 (公开成员对象) |
char int_n_sep_by_space (C++11) |
指示 int_curr_symbol 、 positive_sign 及负国际货币值的分隔 (公开成员对象) |
char int_p_sign_posn (C++11) |
指示非负国际货币值中 positive_sign 的位置 (公开成员对象) |
char int_n_sign_posn (C++11) |
指示负国际货币值中 positive_sign 的位置 (公开成员对象) |
按照数值转译 grouping
和 mon_grouping
所指向的 C 字符串。遇到终止 '\0' 时,假设最后见到的值为剩下的数位重复。若遇到 CHAR_MAX ,则不再将数位分组。典型的每次三位分组是 "\003" 。
p_sep_by_space
、 n_sep_by_space
、 int_p_sep_by_space
、 int_n_sep_by_space
的值转译如下:
0 | 通货符号和值间无空格分隔 |
1 | 符号紧贴通货符号,值为空格所分隔 |
2 | 符号紧贴值,通货符号为空格所分隔 |
p_sign_posn
、 n_sign_posn
、 int_p_sign_posn
、 int_n_sign_posn
的值转译如下:
0 | 括号围绕值,并用通货符号表示符号 |
1 | 符号在值与通货符号前 |
2 | 符号在值与通货符号后 |
3 | 符号在通货符号前 |
4 | 符号在通货符号后 |
示例
运行此代码
#include <clocale> #include <iostream> int main() { std::setlocale(LC_ALL, "ja_JP.UTF-8"); std::lconv* lc = std::localeconv(); std::cout << "Japanese currency symbol: " << lc->currency_symbol << '(' << lc->int_curr_symbol << ")\n"; }
输出:
Japanese currency symbol: ¥(JPY )
参阅
查询当前本地环境的数值和货币格式化细节 (函数) | |
定义数值标点规则 (类模板) | |
定义 std::money_get 与 std::money_put 所用的货币格式解析器的参数 (类模板) |