std::lconv
Определено в заголовке <clocale> | ||
|---|---|---|
struct lconv; |
Класс std::lconv содержит правила форматирования чисел и валют, определённые локалью C. Объекты этой структуры можно получить с помощью std::localeconv. Члены std::lconv представляют собой значения типа char и типа char*. Каждый член char*, кроме decimal_point, может указывать на нулевой символ (то есть на пустую строку C). Члены типа char — все неотрицательные числа, любое из которых может быть CHAR_MAX , если соответствующее значение недоступно в текущей локали C.
Члены
Параметры форматирования невалютных чисел
| 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 | 1 , если символ валюты стоит перед неотрицательным значением, 0 , если после (публичный член) |
| char n_cs_precedes | 1 , если символ валюты стоит перед отрицательным значением, 0 , если после (публичный член) |
| char p_sep_by_space | указывает разделение currency_symbol, positive_sign, и неотрицательного денежного значения (публичный член) |
| char n_sep_by_space | указывает разделение currency_symbol, negative_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) | 1 , если int_curr_symbol стоит перед неотрицательным международным денежным значением, 0 , если после (публичный член) |
| char int_n_cs_precedes (C++11) | 1 , если int_curr_symboll стоит перед отрицательным международным денежным значением, 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, negative_sign, и отрицательного международного денежного значения (публичный член) |
| char int_p_sign_posn (C++11) | указывает положение positive_sign в неотрицательном международном денежном значении (публичный член) |
| char int_n_sign_posn (C++11) | указывает положение negative_sign в отрицательном международном денежном значении (публичный член) |
Символы строк C, на которые указывают grouping и mon_grouping, интерпретируются в соответствии с их числовыми значениями. При встрече завершающего '\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 (шаблон класса) |
|
C документация для lconv |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/lconv