Hàm setlocale () trong C ++ đặt thông tin ngôn ngữ cho chương trình hiện tại.
Hàm setlocale () được định nghĩa trong tệp tiêu đề.
nguyên mẫu setlocale ()
int setlocale (int category, const char * locale);
Hàm setlocale được sử dụng để đặt ngôn ngữ hệ thống cụ thể cho danh mục nhất định. Hàm setlocale cũng có thể được sử dụng để truy vấn ngôn ngữ C hiện tại.
Điều này có thể được thực hiện bằng cách chuyển một con trỏ null thay cho ngôn ngữ.
Tham số setlocale ()
- thể loại: Chỉ định thông tin ngôn ngữ của chương trình bị ảnh hưởng. Các macro có thể có cho danh mục là:
Macro | Sự miêu tả |
---|---|
LC_ALL | Chọn tất cả ngôn ngữ C |
LC_COLLATE | Lựa chọn danh mục đối chiếu |
LC_CTYPE | Chọn danh mục phân loại ký tự |
LC_MONETARY | Chọn danh mục định dạng tiền tệ |
LC_NUMERIC | Chọn danh mục định dạng số |
LC_TIME | Chọn danh mục định dạng thời gian |
- locale: Một định danh ngôn ngữ cụ thể của hệ thống. Nếu nó là một con trỏ null, một lệnh gọi setlocale () sẽ truy vấn ngôn ngữ C hiện tại.
setlocale () Giá trị trả về
- Khi thành công, hàm setlocale () trả về một con trỏ đến chuỗi xác định ngôn ngữ C sau khi áp dụng các thay đổi.
- Khi thất bại, nó trả về một con trỏ null.
Ví dụ: Hàm setlocale () hoạt động như thế nào?
#include #include using namespace std; int main() ( char *str; setlocale(LC_ALL, "en_US.utf8"); str = setlocale(LC_ALL, NULL); cout << "Current locale: " << str << endl; cout << "Changing locale " << endl; setlocale(LC_ALL, "en_GB.utf8"); str = setlocale(LC_ALL, NULL); wcout << "Current locale: " << str << endl; return 0; )
Khi bạn chạy chương trình, đầu ra sẽ là:
Ngôn ngữ hiện tại: en_US.utf8 Thay đổi ngôn ngữ Ngôn ngữ hiện tại: en_GB.utf8