#include <locale.h>
struct lconv *localeconv(void)
Функция localeconv() возвращает указатель на структуру типа lconv, которая содержит различную информацию о геополитической среде, связанную со способом форматирования чисел.
Структура lconv включает следующие члены:
char decimal_point; /*Символ десятичной точки для неденежных значений.*/
char thousands_sep; /*Разделитель тысяч для неденежных значений.*/
char grouping; /*Определяет группирование для неденежных значений.*/
char int_curr_symbol; /*Символ международной валюты*/
char currency_symbol; /* Символ местной валюты*/
char mon_decimal_point; /* Символ десятичной точки для денежных значений.*/
char mon_thousands_sep; /* Разделитель тысяч для денежных значений.*/
char mon_grouping; /* Определяет группирование для денежных значений.*/
char positive_sign; /*Индикатор положительных денежных значений.*/
char negative_sign; /*Индикатор отрицательных денежных значений.*/
char int_frac_digits; /*Количество цифр справа от десятичной точки для денежных значений,
отображаемых в международном формате. */
сhar frac_digits; /* Количество цифр справа от десятичной точки для денежных значений,
отображаемых в местном формате. */
char p_cs_precedes; /* 1-если символ валюты предшествует положительному значению,0- если
символ валюты следует за значением. */
char p_sep_by_space; /* 1-если символ валюты отделяется от значения пробелом,0- в противном
случае. В версии С99 содержит разделитель. */
char n_cs_precedes; /* 1- если символ валюты предшествует отрицательному значению,
0- если символ валюты следует за значением. */
char n_sep_by_space; /* 1- если символ валюты отделяется от отрицательного значения пробелом,
0- если символ валюты следует за значением. В версии С99 содержит
разделитель. */
сhar p_sign_posn; /*Указывает позицию символа положительного значения. */
char n_ sign_posn; /* Указывает позицию символа отрицательного значения. */
/* Следующие члены добавлены в С99. */
char _p_ cs_precedes; /* 1 - если символ валюты предшествует положительному значению,
0 - еслисимвол валюты следует за значением. Применяется для значений
в международном формате. */
char _p_ sep_by_space; /* Разделитель между символом валюты, знаком и положительным значением.
Применяется для значений в международном. формате. */
Rhar_n_cs_ precedes; /* 1 - если символ валюты предшествует отрицательному значению,
0 - если символ валюты следует за значением. Применяется для значений
в международном формате . */
char _n_ sep_by_space; /* Разделитель между символом валюты, знаком и отрицательным значением.
Применяется для значений в международном формате . */
char _n_sign_ posn; /* Указывает позицию символа .отрицательного значения. Применяется
для значений в международном формате.*/
Функция localeconv() возвращает указатель на структуру lconv. Следует помнить, что содержимое этой структуры изменять нельзя. Необходимо обратится к документации вашего транслятора для определения специфической информации, касающейся структуры lconv.
Пример 1
Следующая программа отображает символ десятичной точки, используемый в текущей локализации:
#include <stdio.h>
#include <locale.h>
int main (void)
{
struct lconv lc;
lc = *localeconv();
printf("B качестве разделителя целой и дробной части в десятичных числах используется символ %s\n", lc.decimal_point);
return 0;
}
При этом используется родственная функция setlocale().