Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 clocale 헤더 파일

<시간/>

주어진 작업은 C++에서 헤더 파일의 사용을 보여주는 것입니다.

헤더 파일은 C++ 표준 라이브러리의 일부인 지역화 라이브러리의 일부입니다. 원래 라는 이름의 C 표준 라이브러리에 있었습니다.

이 헤더 파일에 포함된 함수 및 선언은 다른 국가의 날짜 형식 및 통화 기호가 필요한 작업에 사용됩니다.

헤더 파일에 포함된 함수는 setlocale() 및 localeconv()

입니다.

이 헤더 파일에 정의되고 이 두 함수에서 사용되는 매크로는 -

LC_ALL -> 모든 것을 설정합니다.

LC_COLLATE-> strcoll 및 strxfrm 함수에 영향을 줍니다.

LC_CTYPE-> 모든 캐릭터 기능에 영향을 미칩니다.

LC_MONETARY-> localeconv 함수에서 제공하는 화폐 정보에 영향을 줍니다.

LC_NUMERIC-> 소수점 형식 및 localeconv 함수에서 제공하는 정보에 영향을 줍니다.

LC_TIME-> strftime 함수에 영향을 줍니다.

localeconv()

localeconv() 함수는 위치에 따라 달라지는 정보를 설정하거나 읽습니다.

구문

localeconv()의 구문은 다음과 같습니다 -

Struct lconv*localeconv()

setlocale()

setlocale() 함수는 지정된 시스템 로케일을 설치하고 현재 프로그램에 따라 로케일 정보를 설정합니다.

구문

setlocale()의 구문은 다음과 같습니다. -

char *setlocale(int category, const char *locale)

예시

Input: setlocale(LC_ALL, "en_GB")
s = setlocale(LC_ALL, NULL)
Output: C

setlocale()은 문자열에 대한 포인터를 반환하고 식별하면 C 로케일을 반환합니다. 그렇지 않으면 null 포인터를 반환하고 이 경우 "C"를 반환합니다.

아래 프로그램에서 사용하는 접근 방식은 다음과 같습니다. -

  • 먼저 main() 함수 내에서 setlocale() 함수를 호출하고 범주를 LC_MONETARY로, 로케일을 en_GB로 설정합니다.
  • 그런 다음 char 포인터를 사용하여 lconv 구조를 만들고 lc라고 가정하고 localeconv() 함수가 우리가 만든 구조에 대한 포인터를 반환할 수 있도록 localeconv() 함수의 호출과 동일하게 유지합니다.
  • printf 문을 사용하여 현재 통화를 인쇄합니다.

예시

#include <iostream>
#include <locale.h>
using namespace std;
int main() {
   setlocale(LC_MONETARY, "en_GB");
   struct lconv* lc = localeconv();
   printf("%s ", lc->currency_symbol);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

£

setlocale 함수에서 LC_MONETARY인 통화 범주를 선택하고 로캘을 "en_GB"로 설정했기 때문에 출력에서 ​​영국의 통화인 파운드의 통화 기호를 얻습니다. 여기서 GB는 영국의 약어입니다. 더 나아가 우리는 lconv 구조를 만들어 영국의 현재 통화 기호인 £를 표시하는 데 사용했습니다.