Namespaces
Variants

LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME

From cppreference.net
Défini dans l'en-tête <locale.h>
#define LC_ALL      /* implementation-defined */
#define LC_COLLATE  /* implementation-defined */
#define LC_CTYPE    /* implementation-defined */
#define LC_MONETARY /* implementation-defined */
#define LC_NUMERIC  /* implementation-defined */
#define LC_TIME     /* implementation-defined */

Chacune des constantes macro ci-dessus se développe en des expressions constantes entières avec des valeurs distinctes qui sont appropriées pour être utilisées comme premier argument de setlocale .

Constante Explication
LC_ALL sélectionne l'intégralité des paramètres régionaux C
LC_COLLATE sélectionne la catégorie de collation des paramètres régionaux C
LC_CTYPE sélectionne la catégorie de classification des caractères des paramètres régionaux C
LC_MONETARY sélectionne la catégorie de formatage monétaire des paramètres régionaux C
LC_NUMERIC sélectionne la catégorie de formatage numérique des paramètres régionaux C
LC_TIME sélectionne la catégorie de formatage temporel des paramètres régionaux C

Des constantes de macro supplémentaires, dont les noms commencent par LC_ suivi d'au moins une lettre majuscule, peuvent être définies dans locale.h . Par exemple, la spécification POSIX requiert LC_MESSAGES (qui contrôle, entre autres, perror et strerror ), ISO/IEC 30112:2014 ( ébauche 2014 ) définit en plus LC_IDENTIFICATION , LC_XLITERATE , LC_NAME , LC_ADDRESS , LC_TELEPHONE , LC_PAPER , LC_MEASUREMENT , et LC_KEYBOARD , qui sont pris en charge par la bibliothèque GNU C (à l'exception de LC_XLITERATE ).

Exemple

#include <locale.h>
#include <stdio.h>
#include <time.h>
#include <wchar.h>
int main(void)
{
    setlocale(LC_ALL, "en_US.UTF-8"); // les paramètres régionaux C seront l'anglais avec support UTF-8
    setlocale(LC_NUMERIC, "de_DE.utf8"); // le séparateur décimal sera allemand
    setlocale(LC_TIME, "ja_JP.utf8");    // le formatage date/heure sera japonais
    wchar_t str[100];
    time_t t = time(NULL);
    wcsftime(str, 100, L"%A %c", localtime(&t));
    wprintf(L"Number: %.2f\nDate: %Ls\n", 3.14, str);
}

Sortie possible :

Number: 3,14
Date: 金曜日 2023年09月15日 20時04分14秒

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.11/3 Localisation <locale.h> (p: À DÉTERMINER)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.11/3 Localisation <locale.h> (p: À DÉTERMINER)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.11/3 Localisation <locale.h> (p: 224)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.11/3 Localisation <locale.h> (p : 205)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.4 LOCALISATION <locale.h>

Voir aussi

obtient et définit les paramètres régionaux C actuels
(fonction)
Documentation C++ pour les catégories de paramètres régionaux