Scroll to navigation

std::lconv(3) C++ Standard Libary std::lconv(3)

NAME

std::lconv - std::lconv

Synopsis


Defined in header <clocale>
struct lconv;


The class std::lconv contains numeric and monetary formatting rules as defined by a
C locale. Objects of this struct may be obtained with std::localeconv. The members
of std::lconv are values of type char and of type char*. Each char* member except
decimal_point may be pointing at a null character (that is, at an empty C-string).
The members of type char are all non-negative numbers, any of which may be CHAR_MAX
if the corresponding value is not available in the current C locale.

Member objects

Non-monetary numeric formatting parameters


char* decimal_point the character used as the decimal point
(public member object)
the character used to separate groups of digits before the
char* thousands_sep decimal point
(public member object)
char* grouping a string whose elements indicate the sizes of digit groups
(public member object)

Monetary numeric formatting parameters


char* mon_decimal_point the character used as the decimal point
(public member object)
the character used to separate groups of digits before the
char* mon_thousands_sep decimal point
(public member object)
char* mon_grouping a string whose elements indicate the sizes of digit groups
(public member object)
char* positive_sign a string used to indicate non-negative monetary quantity
(public member object)
char* negative_sign a string used to indicate negative monetary quantity
(public member object)

Local monetary numeric formatting parameters


char* currency_symbol the symbol used for currency in the current C locale
(public member object)
the number of digits after the decimal point to display in a
char frac_digits monetary quantity
(public member object)
1 if currency_symbol is placed before non-negative value,
char p_cs_precedes 0 if after
(public member object)
1 if currency_symbol is placed before negative value, 0
char n_cs_precedes if after
(public member object)
indicates the separation of currency_symbol, positive_sign,
char p_sep_by_space and the non-negative monetary value
(public member object)
indicates the separation of currency_symbol, negative_sign,
char n_sep_by_space and the negative monetary value
(public member object)
indicates the position of positive_sign in a non-negative
char p_sign_posn monetary value
(public member object)
indicates the position of negative_sign in a negative monetary
char n_sign_posn value
(public member object)

International monetary numeric formatting parameters


the string used as international currency name in the
char* int_curr_symbol current C locale
(public member object)
the number of digits after the decimal point to display in
char int_frac_digits an international monetary quantity
(public member object)
char int_p_cs_precedes 1 if int_curr_symbol is placed before non-negative
(C++11) international monetary value, 0 if after
(public member object)
char int_n_cs_precedes 1 if int_curr_symboll is placed before negative
(C++11) international monetary value, 0 if after
(public member object)
char int_p_sep_by_space indicates the separation of int_curr_symbol, positive_sign,
(C++11) and the non-negative international monetary value
(public member object)
char int_n_sep_by_space indicates the separation of int_curr_symbol, negative_sign,
(C++11) and the negative international monetary value
(public member object)
char int_p_sign_posn indicates the position of positive_sign in a non-negative
(C++11) international monetary value
(public member object)
char int_n_sign_posn indicates the position of negative_sign in a negative
(C++11) international monetary value
(public member object)


The characters of the C-strings pointed to by grouping and mon_grouping are
interpreted according to their numeric values. When the terminating '\0' is
encountered, the last value seen is assumed to repeat for the remainder of digits.
If CHAR_MAX is encountered, no further digits are grouped. the typical grouping of
three digits at a time is "\003".


The values of p_sep_by_space, n_sep_by_space, int_p_sep_by_space, int_n_sep_by_space
are interpreted as follows:


0 no space separates the currency symbol and the value
1 sign sticks to the currency symbol, value is separated by a space
2 sign sticks to the value. Currency symbol is separated by a space


The values of p_sign_posn, n_sign_posn, int_p_sign_posn, int_n_sign_posn are
interpreted as follows:


0 parentheses around the value and the currency symbol are used to represent the
sign
1 sign before the value and the currency symbol
2 sign after the value and the currency symbol
3 sign before the currency symbol
4 sign after the currency symbol

Example

// Run this code


#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";
}

Output:


Japanese currency symbol: ¥(JPY )

See also


localeconv queries numeric and monetary formatting details of the current locale
(function)
numpunct defines numeric punctuation rules
(class template)
defines monetary formatting parameters used by std::money_get and
moneypunct std::money_put
(class template)

2022.07.31 http://cppreference.com