localeconv()
QNX SDP8.0C Library ReferenceAPIDeveloper
Set numeric formatting according to the current locale
Synopsis:
#include <locale.h>
struct lconv * localeconv( void );
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The localeconv() function gets the values appropriate for formatting numeric quantities using the current locale. It returns a pointer to a struct lconv with the following members:
- char * decimal_point
- The decimal-point character used for nonmonetary quantities.
- char * thousands_sep
- The character used to separate groups of digits on the left of the decimal-point character formatted nonmonetary quantities.
- char * int_curr_symbol
- The international currency symbol for the current locale. The first three characters contain the alphabetic international currency symbol in accordance with those specified in ISO 4217: Codes for the Representation of Currency and Funds. The fourth character (immediately preceding the NUL character) is the character used to separate the international currency symbol from the monetary quantity.
- char * currency_symbol
- The local currency symbol applicable to the current locale.
- char * mon_decimal_point
- The decimal-point character used to format monetary quantities.
- char * mon_thousands_sep
- The character used to separate groups of digits on the left of the decimal-point character in formatted monetary quantities.
- char * mon_grouping
- A string whose elements indicate the size of each group of digits in formatted monetary quantities.
- char * grouping
- A string whose elements indicate the size of each group of digits in formatted nonmonetary quantities.
- char * positive_sign
- The string used to indicate a nonnegative monetary quantity.
- char * negative_sign
- The string used to indicate a negative monetary quantity.
- char int_frac_digits
- The number of fractional digits (to the right of the decimal point) to display in an internationally formatted monetary quantity.
- char frac_digits
- The number of fractional digits (to the right of the decimal point) to display in a formatted monetary quantity.
- char p_cs_precedes
- Set to 1 or 0 if the currency_symbol precedes or follows the value for a nonnegative monetary quantity.
- char p_sep_by_space
- Set to 1 or 0 if the currency_symbol is or isn't separated by a space from the value for a nonnegative monetary quantity.
- char n_cs_precedes
- Set to 1 or 0 if the currency_symbol precedes or follows the value for a negative monetary quantity.
- char n_sep_by_space
- Set to 1 or 0 if the currency_symbol is or isn't separated by a space from the value for a negative monetary quantity.
- char p_sign_posn
- The position of the positive_sign for a nonnegative monetary quantity.
- char n_sign_posn
- The position of the positive_sign for a negative monetary quantity.
The grouping and mon_grouping members have the following values:
- CHAR_MAX
- Perform no further grouping.
- 0
- Repeat the previous element used for the remainder of the digits.
- other
- The value is the number of digits that comprise the current group. Examine the next element to determine the size of the next group of digits (to the left of the current group).
The p_sign_posn and n_sign_posn members have the following values:
- 0
- Parentheses surround the quantity and currency_symbol.
- 1
- The sign string precedes the quantity and currency_symbol.
- 2
- The sign string follows the quantity and currency_symbol.
- 3
- The sign string immediately precedes the quantity and currency_symbol.
- 4
- The sign string immediately follows the quantity and currency_symbol.
Note:
QNX OS provides this function for POSIX compatibility, but it isn't adequate for internationalization. QNX OS ships
the International Components for Unicode (ICU) libraries (libicu*) that you can use
instead. For more information about ICU, see https://icu.unicode.org/home.
Returns:
A pointer to the struct lconv.
Examples:
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
int main( void )
{
struct lconv *lc;
lc = localeconv();
printf( "decimal_point (%s)\n", lc->decimal_point );
printf( "thousands_sep (%s)\n", lc->thousands_sep );
printf( "int_curr_symbol (%s)\n", lc->int_curr_symbol );
printf( "currency_symbol (%s)\n", lc->currency_symbol );
printf( "mon_decimal_point (%s)\n", lc->mon_decimal_point );
printf( "mon_thousands_sep (%s)\n", lc->mon_thousands_sep );
printf( "mon_grouping (%s)\n", lc->mon_grouping );
printf( "grouping (%s)\n", lc->grouping );
printf( "positive_sign (%s)\n", lc->positive_sign );
printf( "negative_sign (%s)\n", lc->negative_sign );
printf( "int_frac_digits (%d)\n", lc->int_frac_digits );
printf( "frac_digits (%d)\n", lc->frac_digits );
printf( "p_cs_precedes (%d)\n", lc->p_cs_precedes );
printf( "p_sep_by_space (%d)\n", lc->p_sep_by_space );
printf( "n_cs_precedes (%d)\n", lc->n_cs_precedes );
printf( "n_sep_by_space (%d)\n", lc->n_sep_by_space );
printf( "p_sign_posn (%d)\n", lc->p_sign_posn );
printf( "n_sign_posn (%d)\n", lc->n_sign_posn );
return EXIT_SUCCESS;
}
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | No |
Thread | Yes |
Page updated: