Namespaces
Variants

LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME

From cppreference.net
Défini dans l'en-tête <clocale>
#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 std::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 <clocale> . Par exemple, la spécification POSIX requiert LC_MESSAGES (qui contrôle std::perror et std::strerror ), ISO/IEC 30112:2014 ( ébauche 2014 ) définit en outre 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 <clocale>
#include <cstdio>
#include <ctime>
#include <cwchar>
int main()
{
    // le paramètre régional C sera l'anglais avec UTF-8 activé :
    std::setlocale(LC_ALL, "en_US.UTF-8");
    // le séparateur décimal sera allemand :
    std::setlocale(LC_NUMERIC, "de_DE.UTF-8");
    // le formatage de la date/heure sera japonais :
    std::setlocale(LC_TIME, "ja_JP.UTF-8");
    wchar_t str[100];
    std::time_t t = std::time(nullptr);
    std::wcsftime(str, 100, L"%A %c", std::localtime(&t));
    std::wprintf(L"Number: %.2f\nDate: %Ls\n", 3.14, str);
}

Sortie :

Number: 3,14
Date: 日曜日 2022年11月06日 17時55分10秒

Voir aussi

obtient et définit les paramètres régionaux C actuels
(fonction)
ensemble de facettes polymorphes qui encapsulent les différences culturelles
(classe)
Documentation C pour les catégories de paramètres régionaux