Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ไฟล์ส่วนหัว clocale ใน C ++


กำหนดให้แสดงการใช้ ไฟล์ส่วนหัวในภาษา 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"

แนวทางที่ใช้ในโปรแกรมด้านล่างดังนี้

  • เรียกใช้ฟังก์ชัน setlocale() ครั้งแรกภายในฟังก์ชัน main() และตั้งค่าหมวดหมู่เป็น LC_MONETARY และตั้งค่าโลแคลเป็น en_GB
  • จากนั้นสร้างโครงสร้าง 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 และใช้สำหรับแสดงสัญลักษณ์สกุลเงินปัจจุบันของบริเตนใหญ่ นั่นคือ £