C yerelleştirme işlevleri - C localization functions
| C standart kitaplığı |
|---|
| Genel başlıklar |
| Çeşitli başlıklar |
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;
}