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 | |||||||||||||||||||||||||
|
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダーで定義
<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 */
|
||
上記の各マクロ定数は、整数定数式に展開され、それぞれが異なる値を持ち、 std::setlocale の第一引数として使用するのに適しています。
| 定数 | 説明 |
LC_ALL
|
全体のCロケールを選択する |
LC_COLLATE
|
Cロケールの照合カテゴリを選択する |
LC_CTYPE
|
Cロケールの文字分類カテゴリを選択する |
LC_MONETARY
|
Cロケールの通貨書式カテゴリを選択する |
LC_NUMERIC
|
Cロケールの数値書式カテゴリを選択する |
LC_TIME
|
Cロケールの時間書式カテゴリを選択する |
追加のマクロ定数で、名前が
LC_
で始まり、その後少なくとも1つの大文字が続くものは、
<clocale>
で定義される可能性があります。例えば、POSIX仕様では
LC_MESSAGES
(これは
std::perror
と
std::strerror
を制御します)が要求されており、ISO/IEC 30112:2014 (
2014 draft
) はさらに
LC_IDENTIFICATION
、
LC_XLITERATE
、
LC_NAME
、
LC_ADDRESS
、
LC_TELEPHONE
、
LC_PAPER
、
LC_MEASUREMENT
、および
LC_KEYBOARD
を定義しており、これらはGNU Cライブラリでサポートされています(
LC_XLITERATE
を除く)。
例
#include <clocale> #include <cstdio> #include <ctime> #include <cwchar> int main() { // CロケールはUTF-8対応の英語になります: std::setlocale(LC_ALL, "en_US.UTF-8"); // 小数点はドイツ語形式になります: std::setlocale(LC_NUMERIC, "de_DE.UTF-8"); // 日付/時刻の書式は日本語形式になります: 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); }
出力:
Number: 3,14 Date: 日曜日 2022年11月06日 17時55分10秒
関連項目
|
現在のCロケールを取得および設定する
(関数) |
|
|
文化的差異をカプセル化する多相的なファセットの集合
(クラス) |
|
|
Cドキュメント
for
locale categories
|
|