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 , если символ валюты стоит перед неотрицательным значением, ​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 )

См. также

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/w/cpp/locale/lconv

Spec-Zone.ru

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