Funkcje lokalizacji C - C localization functions

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;
}

Zobacz też

Bibliografia