Namespaces
Variants

std:: lconv

From cppreference.net
Определено в заголовочном файле <clocale>
struct lconv ;

Класс std::lconv содержит правила числового и денежного форматирования, определённые локализацией C. Объекты этой структуры могут быть получены с помощью std::localeconv . Члены структуры std::lconv являются значениями типа char и типа char * . Каждый член типа char * , кроме decimal_point , может указывать на нулевой символ (то есть на пустую C-строку). Члены типа char являются неотрицательными числами, любое из которых может быть равно CHAR_MAX , если соответствующее значение недоступно в текущей локализации C.

Содержание

Объекты-члены

Параметры неденежного числового форматирования

char* decimal_point
символ, используемый в качестве десятичной точки
(public member object)
char* thousands_sep
символ, используемый для разделения групп цифр перед десятичной точкой
(public member object)
char* grouping
строка, элементы которой указывают размеры групп цифр
(public member object)

Параметры денежного числового форматирования

char* mon_decimal_point
символ, используемый в качестве десятичной точки
(public member object)
char* mon_thousands_sep
символ, используемый для разделения групп цифр перед десятичной точкой
(public member object)
char* mon_grouping
строка, элементы которой указывают размеры групп цифр
(public member object)
char* positive_sign
строка, используемая для обозначения неотрицательной денежной величины
(public member object)
char* negative_sign
строка, используемая для обозначения отрицательной денежной величины
(public member object)

Локальные параметры форматирования денежных числовых значений

char* currency_symbol
символ, используемый для обозначения валюты в текущей локали C
(public member object)
char frac_digits
количество цифр после десятичной точки для отображения в денежной величине
(public member object)
char p_cs_precedes
1 если currency_symbol размещается перед неотрицательным значением, 0 если после
(public member object)
char n_cs_precedes
1 если currency_symbol размещается перед отрицательным значением, 0 если после
(public member object)
char p_sep_by_space
указывает разделение между currency_symbol , positive_sign и неотрицательным денежным значением
(public member object)
char n_sep_by_space
указывает разделение между currency_symbol , negative_sign и отрицательным денежным значением
(public member object)
char p_sign_posn
указывает позицию positive_sign в неотрицательном денежном значении
(public member object)
char n_sign_posn
указывает позицию negative_sign в отрицательном денежном значении
(public member object)

Параметры международного денежного числового форматирования

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