Namensräume
Varianten
Aktionen

LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME

Von cppreference.com
< cpp‎ | locale
 
 
 
 
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

#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) [bearbeiten]
Satz von polymorphen Facetten, die kulturelle Unterschiede kapseln
(Klasse) [bearbeiten]
C-Dokumentation für Locale-Kategorien