Namespaces
Variants

LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME

From cppreference.net
헤더 파일에 정의됨 <clocale>
#define LC_ALL      /* 구현 정의 */
#define LC_COLLATE  /* 구현 정의 */
#define LC_CTYPE    /* 구현 정의 */
#define LC_MONETARY /* 구현 정의 */
#define LC_NUMERIC  /* 구현 정의 */
#define LC_TIME     /* 구현 정의 */

위의 각 매크로 상수는 std::setlocale 의 첫 번째 인수로 사용하기에 적합한 서로 다른 값을 가진 정수 상수 표현식으로 확장됩니다.

상수 설명
LC_ALL 전체 C 로케일을 선택
LC_COLLATE C 로케일의 문자열 정렬 카테고리를 선택
LC_CTYPE C 로케일의 문자 분류 카테고리를 선택
LC_MONETARY C 로케일의 통화 형식 카테고리를 선택
LC_NUMERIC C 로케일의 숫자 형식 카테고리를 선택
LC_TIME C 로케일의 시간 형식 카테고리를 선택

추가 매크로 상수들로, 이름이 LC_ 로 시작하고 그 뒤에 적어도 하나의 대문자가 오는 것들이 <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