LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
Von cppreference.com
| Definiert in Header <clocale> |
||
| #define LC_ALL /* implementierungsdefiniert */ |
||
| #define LC_COLLATE /* implementierungsdefiniert */ |
||
| #define LC_CTYPE /* implementierungsdefiniert */ |
||
| #define LC_MONETARY /* implementierungsdefiniert */ |
||
| #define LC_NUMERIC /* implementierungsdefiniert */ |
||
| #define LC_TIME /* implementierungsdefiniert */ |
||
Jede der obigen Makrokonstanten wird zu ganzzahligen konstanten Ausdrücken mit unterschiedlichen Werten erweitert, die als erstes Argument von std::setlocale verwendet werden können.
| Konstante | Erklärung |
LC_ALL
|
wählt die gesamte C-Locale aus |
LC_COLLATE
|
wählt die Kollationskategorie der C-Locale aus |
LC_CTYPE
|
wählt die Zeichenklassifizierungskategorie der C-Locale aus |
LC_MONETARY
|
wählt die Kategorie für die Formatierung von Währungsbeträgen der C-Locale aus |
LC_NUMERIC
|
wählt die Kategorie für die numerische Formatierung der C-Locale aus |
LC_TIME
|
wählt die Kategorie für die Formatierung von Zeitangaben der C-Locale aus |
Zusätzliche Makrokonstanten, deren Namen mit LC_ beginnen, gefolgt von mindestens einem Großbuchstaben, können in <clocale> definiert sein. Zum Beispiel erfordert die POSIX-Spezifikation LC_MESSAGES (welches 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, welche von der GNU C Library unterstützt werden (mit Ausnahme von LC_XLITERATE).
[editieren] Beispiel
Führen Sie diesen Code aus
#include <clocale> #include <cstdio> #include <ctime> #include <cwchar> int main() { // the C locale will be the UTF-8 enabled English: std::setlocale(LC_ALL, "en_US.UTF-8"); // decimal dot will be German: std::setlocale(LC_NUMERIC, "de_DE.UTF-8"); // date/time formatting will be Japanese: 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秒
[editieren] Siehe auch
| erfragt und setzt die aktuelle C-Locale (Funktion) | |
| Satz von polymorphen Facetten, die kulturelle Unterschiede kapseln (Klasse) | |
| C-Dokumentation für Locale-Kategorien
| |