#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; | /* Количество цифр справа от десятичной точки для денежных значений, отображаемых в международном формате. */ |
char frac_digits; | /* Количество цифр справа от десятичной точки для денежных значений, отображаемых в местном формате. */ |
char p_cs_precedes; | /* 1 - если символ валюты предшествует положительному значению, 0 - если символ валюты следует за значением. */ |
char р_sep_by_space; | /* 1 - если символ валюты отделяется от значения пробелом, 0 - в противном случае. В версии С99 содержит разделитель.*/ |
char n_cs_precedes; | /* 1 - если символ валюты предшествует отрицательному значению, 0 - если символ валюты следует за значением. */ |
char n_sep_by_space; | /* 1 - если символ валюты отделяется от отрицательного значения пробелом, 0 - если символ валюты следует за значением. В версии С99 содержит разделитель. */ |
char p_sign_posn; | /* Указывает позицию символа положительного значения. */ |
char n_sign_posn; | /* Указывает позицию символа отрицательного значения. */ |
/* Следующие члены добавлены в С99. */ | |
char _p_cs_precedes; | /* 1 - если символ валюты предшествует положительному значению, 0 - если символ валюты следует за значением. Применяется для значений в межд ународном формате. */ |
char _p_sep_by_space; | /* Разделитель между символом валюты, знаком и положительным значением. Применяется для значений в международном формате. */ |
char _n_cs_precedes; | /* 1 - если символ валюты предшествует отрицательному значению, 0 - если символ валюты следует за значением. Применяется для значений в международном формате. */ |
char _n_sep_by_space; | /* Разделитель между символом валюты, знаком и отрицательным значением. Применяется для значений в международном формате. */ |
char _p_sign_posn; | /* Указывает позицию символа положительного значения. Применяется для значений в международном формате. */ |
char _n_sign_posn; | /* Указывает позицию символа отрицательного значения. Применяется для значений в международном формате. */ |
Функция localeconv() возвращает указатель на структуру lconv. Следует помнить, что содержимое этой структуры изменять нельзя. Обратитесь к документации вашего транслятора для определения специфической информации, касающейся структуры lconv.
Следующая программа отображает символ десятичной точки, используемый в текущей локализации:
#include <stdio.h> #include <locale.h> int main(void) { struct lconv lc; lc = *localeconv(); printf("В качестве разделителя целой и дробной части в десятичных числах используется символ: %s\n", lc.decimal_point); return 0; }