Funkcje lokalizacji C - C localization functions
| Biblioteka standardowa C. |
|---|
| Tematy ogólne |
| Różne nagłówki |
W obliczeniowej , C funkcji lokalizacji to grupa funkcji w języku programowania C wykonawczego podstawowe procedury lokalizacyjnej. Funkcje są używane w programach wielojęzycznych w celu dostosowania do określonych ustawień regionalnych. W szczególności można zmodyfikować sposób wyświetlania liczb i waluty. Te ustawienia wpływają na zachowanie funkcji wejścia / wyjścia w bibliotece C Standard Library.
Przegląd funkcji
Funkcje i typy lokalizacji C są zdefiniowane w locale.h ( nagłówek clocale w C ++).
| Funkcjonować | Opis |
|---|---|
| setlocale | ustawia i pobiera bieżące ustawienia regionalne C. |
| localeconv | zwraca szczegóły dotyczące formatowania liczbowego i pieniężnego dla bieżącej lokalizacji |
Krytyka
Standardowe funkcje lokalizacji języka C są krytykowane, ponieważ stan lokalizacji jest przechowywany globalnie. Oznacza to, że w danym programie wszystkie operacje obejmujące locale mogą używać tylko jednego locale na raz. W rezultacie bardzo trudno jest zaimplementować programy, które używają więcej niż jednej lokalizacji.
Funkcje zmieniają zachowanie printf / scanf / strtod, które są często używane do zapisywania zapisanych danych w pliku lub w innych programach. W rezultacie zapisany plik w jednej lokalizacji nie będzie czytelny w innym lub w ogóle nie będzie czytelny z powodu założeń, takich jak „liczby kończą się przecinkiem”. Większość oprogramowania na dużą skalę wymusza ustawienie regionalne „C” (lub inną stałą wartość) w celu obejścia tych problemów.
Przykład
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void)
{
/* Locale is set to "C" before this. This call sets it
to the "current locale" by reading environment variables: */
setlocale(LC_ALL, "");
const struct lconv * const currentlocale = localeconv();
printf("In the current locale, the default currency symbol is: %s\n",
currentlocale->currency_symbol);
return EXIT_SUCCESS;
}