C yerelleştirme işlevleri - C localization functions

Gelen bilgi işlem , C yerelleştirme fonksiyonları işlevleri bir grup C programlama dilinin temel yerelleştirme rutinleri uygulanması. Fonksiyonlar, belirli yerel ayara uyum sağlamak için çok dilli programlarda kullanılır. Özellikle sayıların ve para biriminin gösterilme şekli değiştirilebilir. Bu ayarlar , C Standart Kitaplığındaki giriş / çıkış işlevlerinin davranışını etkiler .

Fonksiyonlara genel bakış

C yerelleştirme işlevleri ve türleri locale.h ( C ++ 'da clocale başlığı) içinde tanımlanmıştır .

Fonksiyon Açıklama
setlocale mevcut C yerel ayarını ayarlar ve alır
localeconv mevcut yerel ayarın sayısal ve parasal biçimlendirme ayrıntılarını döndürür

Eleştiri

Yerelleştirme durumu global olarak depolandığı için C standart yerelleştirme işlevleri eleştirilir. Bu, belirli bir programda, bir yerel ayarı içeren tüm işlemlerin aynı anda yalnızca bir yerel ayar kullanabileceği anlamına gelir. Sonuç olarak, birden fazla yerel ayar kullanan programları uygulamak çok zordur.

İşlevler, genellikle kaydedilen verileri bir dosyaya veya diğer programlara yazmak için kullanılan printf / scanf / strtod davranışını değiştirir. Sonuç bir yerelinde kaydedilmiş bir dosya başka bir yerel ayarda okunamaz veya okunamaz olacaktır hiç yüzünden böyle "sayılar virgül karakterleri sona" olarak varsayımlara. Çoğu büyük ölçekli yazılım, bu sorunların üstesinden gelmek için yerel ayarı "C" ye (veya başka bir sabit değere) zorlar.

Misal

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

Ayrıca bakınız

Referanslar