Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Macros de catégories de localisation

La librairie locale.h La structure lconv


Entête à inclure

#include <locale.h>  // <clocale> en C++

Catégories ISO C

Ces macros sont passées en premier paramètre à setlocale. Elles permettent de changer toute la localisation, ou seulement une partie de ses règles.

MacroDepuisDescription
LC_ALL C89 Toutes les catégories de localisation.
LC_COLLATE C89 Règles de collation, utilisées notamment par strcoll et strxfrm.
LC_CTYPE C89 Classification et conversions de caractères.
LC_MONETARY C89 Informations de formatage monétaire consultables via localeconv.
LC_NUMERIC C89 Formatage numérique, notamment le séparateur décimal.
LC_TIME C89 Formatage des dates et des heures.
LC_MESSAGES POSIX Langue des messages de diagnostic et de certains messages système.

Masques POSIX

POSIX ajoute des masques utilisables avec newlocale. On les combine avec l'opérateur binaire | pour construire ou modifier plusieurs catégories en une seule fois.

MacroDepuisDescription
LC_ALL_MASK POSIX Masque regroupant toutes les catégories supportées.
LC_COLLATE_MASK POSIX Masque associé à LC_COLLATE.
LC_CTYPE_MASK POSIX Masque associé à LC_CTYPE.
LC_MESSAGES_MASK POSIX Masque associé à LC_MESSAGES.
LC_MONETARY_MASK POSIX Masque associé à LC_MONETARY.
LC_NUMERIC_MASK POSIX Masque associé à LC_NUMERIC.
LC_TIME_MASK POSIX Masque associé à LC_TIME.
LC_GLOBAL_LOCALE POSIX Objet spécial désignant la localisation globale du processus.

Exemple de code

L'exemple suivant construit une localisation POSIX ne modifiant que les règles numériques.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
#define _POSIX_C_SOURCE 200809L

#include <locale.h>
#include <stdio.h>
#include <stdlib.h>

int main() {

    locale_t locale = newlocale( LC_NUMERIC_MASK, "C", (locale_t) 0 );

    if ( locale == (locale_t) 0 ) {
        perror( "newlocale" );
        return EXIT_FAILURE;
    }

    puts( "Localisation creee." );
    freelocale( locale );

    return EXIT_SUCCESS;
}
Utilisation des masques LC_*_MASK

Sujets connexes

La librairie locale.h
newlocale
setlocale


La librairie locale.h La structure lconv




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé