Computer >> Máy Tính >  >> Lập trình >> C ++

tệp tiêu đề clocale trong C ++

Nhiệm vụ được giao là hiển thị việc sử dụng tệp tiêu đề trong C ++.

Tệp tiêu đề là một phần của thư viện bản địa hóa mà còn là một phần của thư viện chuẩn C ++. Ban đầu nó nằm trong thư viện chuẩn C với tên là .

Các hàm và khai báo có trong tệp tiêu đề này được sử dụng cho các tác vụ yêu cầu định dạng ngày tháng và ký hiệu tiền tệ của các quốc gia khác nhau.

Các hàm có trong tệp tiêu đề là setlocale () và localeconv ()

Các macro được xác định trong tệp tiêu đề này và được sử dụng trong hai hàm này là -

LC_ALL -> Nó thiết lập mọi thứ.

LC_COLLATE- > Nó ảnh hưởng đến các hàm strcoll và strxfrm.

LC_CTYPE- > Nó ảnh hưởng đến tất cả các chức năng của ký tự.

LC_MONETARY- > Nó ảnh hưởng đến thông tin tiền tệ được cung cấp bởi chức năng localeconv.

LC_NUMERIC- > Nó ảnh hưởng đến định dạng dấu phẩy thập phân và thông tin được cung cấp bởi hàm localeconv.

LC_TIME- > Nó ảnh hưởng đến hàm strftime.

localeconv ()

Hàm localeconv () đặt hoặc đọc thông tin phụ thuộc vào vị trí.

Cú pháp

Cú pháp cho localeconv () như sau -

Struct lconv*localeconv()

setlocale ()

Hàm setlocale () cài đặt ngôn ngữ hệ thống được chỉ định và đặt thông tin ngôn ngữ theo chương trình hiện tại.

Cú pháp

Cú pháp cho setlocale () như sau -

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

Ví dụ

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

setlocale () trả về một con trỏ cho chuỗi, nếu nó xác định được nó sẽ trả về miền C nếu không nó chỉ trả về một con trỏ null và trong trường hợp này, nó trả về “C”.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -

  • Đầu tiên hãy gọi hàm setlocale () bên trong hàm main () và đặt danh mục là LC_MONETARY và ngôn ngữ là en_GB.
  • Sau đó, tạo cấu trúc lconv bằng con trỏ char, giả sử, lc và giữ nó bằng cách gọi hàm localeconv () để hàm localeconv () có thể trả về một con trỏ cho cấu trúc mà chúng ta đã tạo.
  • Sử dụng câu lệnh printf để in đơn vị tiền tệ hiện tại.

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

£

Trong đầu ra, chúng tôi nhận được ký hiệu tiền tệ là bảng Anh, là đơn vị tiền tệ của Vương quốc Anh vì trong hàm setlocale, chúng tôi đã chọn danh mục tiền tệ là LC_MONETARY và đặt ngôn ngữ là "en_GB" trong đó GB là chữ viết tắt của Vương quốc Anh. Hơn nữa, chúng tôi đã tạo cấu trúc lconv và sử dụng nó để hiển thị biểu tượng tiền tệ hiện tại của Vương quốc Anh, đó là £.