주어진 작업은 C++에서
이 헤더 파일에 포함된 함수 및 선언은 다른 국가의 날짜 형식 및 통화 기호가 필요한 작업에 사용됩니다.
이 헤더 파일에 정의되고 이 두 함수에서 사용되는 매크로는 -
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 구조를 만들어 영국의 현재 통화 기호인 £를 표시하는 데 사용했습니다.