LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
From cppreference.com
| ヘッダー <clocale> で定義 |
||
| #define LC_ALL /* 実装定義 */ |
||
| #define LC_COLLATE /* 実装定義 */ |
||
| #define LC_CTYPE /* 実装定義 */ |
||
| #define LC_MONETARY /* 実装定義 */ |
||
| #define LC_NUMERIC /* 実装定義 */ |
||
| #define LC_TIME /* 実装定義 */ |
||
上記の各マクロ定数は、std::setlocale の最初の引数として使用できる、値が異なる整数定数式に展開されます。
| Constant | 説明 |
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年ドラフト) はさらに 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() { // 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); }
出力
Number: 3,14 Date: 日曜日 2022年11月06日 17時55分10秒
[編集] 関連項目
| 現在のCロケールを取得および設定する (関数) | |
| 文化的な違いをカプセル化するポリモーフィックなファセットのセット (クラス) | |
| C のドキュメント (ロケールカテゴリ について)
| |