Spec-Zone.ru › C++

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 )

См. также

localeconv
получает сведения о форматировании чисел и денежных величин в текущей локали
(функция)
numpunct
задаёт правила пунктуации чисел
(шаблон класса)
moneypunct
задаёт параметры денежного форматирования, используемые 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API