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, если currency_symbol стоит перед неотрицательным значением, 0 — если после него (общедоступный объект-член) |
|
char n_cs_precedes |
1, если currency_symbol стоит перед отрицательным значением, 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/cpp/locale/lconv