กำหนดให้แสดงการใช้
ไฟล์ส่วนหัว
ฟังก์ชันและการประกาศที่รวมอยู่ในไฟล์ส่วนหัวนี้ใช้สำหรับงานที่ต้องใช้รูปแบบวันที่และสัญลักษณ์สกุลเงินของประเทศต่างๆ
ฟังก์ชั่นที่รวมอยู่ในไฟล์ส่วนหัว
มาโครที่กำหนดไว้ในไฟล์ส่วนหัวนี้และใช้ในฟังก์ชันทั้งสองนี้คือ −
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 และใช้สำหรับแสดงสัญลักษณ์สกุลเงินปัจจุบันของบริเตนใหญ่ นั่นคือ £