std::lconv
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) |
char* thousands_sep |
the character used to separate groups of digits before the 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) |
char* mon_thousands_sep |
the character used to separate groups of digits before the 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) |
char frac_digits |
the number of digits after the decimal point to display in a monetary quantity (public member object) |
char p_cs_precedes |
1 if currency_symbol is placed before non-negative value, 0 if after (public member object) |
char n_cs_precedes |
1 if currency_symbol is placed before negative value, 0 if after (public member object) |
char p_sep_by_space |
indicates the separation of currency_symbol , positive_sign , and the non-negative monetary value (public member object) |
char n_sep_by_space |
indicates the separation of currency_symbol , negative_sign , and the negative monetary value (public member object) |
char p_sign_posn |
indicates the position of positive_sign in a non-negative monetary value (public member object) |
char n_sign_posn |
indicates the position of negative_sign in a negative monetary value (public member object) |
International monetary numeric formatting parameters
char* int_curr_symbol |
the string used as international currency name in the current C locale (public member object) |
char int_frac_digits |
the number of digits after the decimal point to display in an international monetary quantity (public member object) |
char int_p_cs_precedes (C++11) |
1 if int_curr_symbol is placed before non-negative international monetary value, 0 if after (public member object) |
char int_n_cs_precedes (C++11) |
1 if int_curr_symboll is placed before negative international monetary value, 0 if after (public member object) |
char int_p_sep_by_space (C++11) |
indicates the separation of int_curr_symbol , positive_sign , and the non-negative international monetary value (public member object) |
char int_n_sep_by_space (C++11) |
indicates the separation of int_curr_symbol , negative_sign , and the negative international monetary value (public member object) |
char int_p_sign_posn (C++11) |
indicates the position of positive_sign in a non-negative international monetary value (public member object) |
char int_n_sign_posn (C++11) |
indicates the position of negative_sign in a negative 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
#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 (function) | |
defines numeric punctuation rules (class template) | |
defines monetary formatting parameters used by std::money_get and std::money_put (class template) |