std::lconv (3) - Linux Manuals

std::lconv: std::lconv

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


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

Monetary numeric formatting parameters


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

Local monetary numeric formatting parameters


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

International monetary numeric formatting parameters


                        the string used as international currency name in the current C locale
char* int_curr_symbol (public member object)
                        the number of digits after the decimal point to display in an international monetary quantity
char int_frac_digits (public member object)


char int_p_cs_precedes 1 if int_curr_symbol is placed before non-negative international monetary value, 0 if after
                        (public member object)
(C++11)


char int_n_cs_precedes 1 if int_curr_symboll is placed before negative international monetary value, 0 if after
                        (public member object)
(C++11)


char int_p_sep_by_space indicates the separation of int_curr_symbol, positive_sign, and the non-negative international monetary value
                        (public member object)
(C++11)


char int_n_sep_by_space indicates the separation of int_curr_symbol, negative_sign, and the negative international monetary value
                        (public member object)
(C++11)


char int_p_sign_posn indicates the position of positive_sign in a non-negative international monetary value
                        (public member object)
(C++11)


char int_n_sign_posn indicates the position of negative_sign in a negative international monetary value
                        (public member object)
(C++11)


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


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