C lokaliseringsfunktioner

Vid beräkning är C-lokaliseringsfunktioner en grupp funktioner i C-programmeringsspråket som implementerar grundläggande lokaliseringsrutiner. Funktionerna används i flerspråkiga program för att anpassa sig till den specifika lokalen. Särskilt sättet att visa siffror och valuta kan ändras. Dessa inställningar påverkar beteendet för in-/utdatafunktioner i C Standard Library.

Översikt över funktioner

C-lokaliseringsfunktioner och -typer definieras i locale.h ( clocale -huvud i C++).

Fungera Beskrivning
setlocale ställer in och hämtar den aktuella C-lokalen
localeconv returnerar numeriska och monetära formateringsdetaljer för den aktuella lokalen

Kritik

C-standardlokaliseringsfunktioner kritiseras eftersom lokaliseringstillståndet lagras globalt. Detta innebär att i ett givet program kan alla operationer som involverar en lokalitet endast använda en lokalitet åt gången. Som ett resultat är det mycket svårt att implementera program som använder mer än ett språk.

Funktionerna ändrar beteendet hos printf/scanf/strtod som ofta används för att skriva sparad data till en fil eller till andra program. Resultatet är att en sparad fil på en plats inte kommer att vara läsbar på en annan plats, eller inte alls på grund av antaganden som "siffror slutar på kommatecken". De flesta storskaliga program tvingar lokalen till "C" (eller ett annat fast värde) för att kringgå dessa problem.

Exempel

 
 
 

 

    

     

           

    
        

     
 #include  <stdio.h>  #include  <stdlib.h>  #include  <locale.h>  int  main  (  void  )  {  /* Locale är satt till "C" före detta. Det här anropet ställer in det   till "nuvarande språkläge" genom att läsa miljövariabler: */  setlocale  (  LC_ALL  ,  ""  );  const  struct  lconv  *  const  currentlocale  =  localeconv  ();  printf  (  "I den aktuella lokalen är standardvalutasymbolen: %s  \n  "  ,  aktuell lokal  ->  valutasymbol  );  returnera  EXIT_SUCCESS  ;  } 

Se även