LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
|
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
|
|