LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
| Localization library | |||||||||||||||||||||||||
| Regular expressions library (C++11) | |||||||||||||||||||||||||
| Formatting library (C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
|
|||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
|
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert im Header
<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 */
|
||
Jede der oben genannten Makrokonstanten erweitert sich zu ganzzahligen Konstantenausdrücken mit unterschiedlichen Werten, die für die Verwendung als erstes Argument von std::setlocale geeignet sind.
| Konstante | Erklärung |
LC_ALL
|
wählt die gesamte C-Locale aus |
LC_COLLATE
|
wählt die Sortierkategorie der C-Locale aus |
LC_CTYPE
|
wählt die Zeichenklassifizierungskategorie der C-Locale aus |
LC_MONETARY
|
wählt die Währungsformatierungskategorie der C-Locale aus |
LC_NUMERIC
|
wählt die Zahlenformatierungskategorie der C-Locale aus |
LC_TIME
|
wählt die Zeitformatierungskategorie der C-Locale aus |
Zusätzliche Makrokonstanten, deren Namen mit
LC_
beginnen, gefolgt von mindestens einem Großbuchstaben, können in
<clocale>
definiert werden. Beispielsweise verlangt die POSIX-Spezifikation
LC_MESSAGES
(das
std::perror
und
std::strerror
steuert), ISO/IEC 30112:2014 (
2014-Entwurf
) definiert zusätzlich
LC_IDENTIFICATION
,
LC_XLITERATE
,
LC_NAME
,
LC_ADDRESS
,
LC_TELEPHONE
,
LC_PAPER
,
LC_MEASUREMENT
, und
LC_KEYBOARD
, die von der GNU-C-Bibliothek unterstützt werden (mit Ausnahme von
LC_XLITERATE
).
Beispiel
#include <clocale> #include <cstdio> #include <ctime> #include <cwchar> int main() { // das C-Locale wird das UTF-8-aktivierte Englisch sein: std::setlocale(LC_ALL, "en_US.UTF-8"); // Dezimaltrennzeichen wird Deutsch sein: std::setlocale(LC_NUMERIC, "de_DE.UTF-8"); // Datums-/Zeitformatierung wird Japanisch sein: 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); }
Ausgabe:
Number: 3,14 Date: 日曜日 2022年11月06日 17時55分10秒
Siehe auch
|
Ermittelt und setzt die aktuelle C-Lokalisierung
(Funktion) |
|
|
Satz polymorpher Facetten, die kulturelle Unterschiede kapseln
(Klasse) |
|
|
C-Dokumentation
für
Lokalisierungskategorien
|
|