दिया गया कार्य C++ में <clocale> हेडर फ़ाइल के उपयोग को दिखाना है।
<clocale> हेडर फ़ाइल लोकलाइज़ेशन लाइब्रेरी का हिस्सा है जो आगे C++ मानक लाइब्रेरी का हिस्सा है। मूल रूप से यह C मानक लाइब्रेरी में <locale.h> नाम से थी।
इस हेडर फ़ाइल में शामिल फ़ंक्शंस और डिक्लेरेशन्स का उपयोग उन कार्यों के लिए किया जाता है जिनमें विभिन्न देशों के दिनांक प्रारूप और मुद्रा प्रतीकों की आवश्यकता होती है।
<clocale> हेडर फ़ाइल में शामिल फ़ंक्शंस 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 लोकेल लौटाएगा अन्यथा यह केवल एक नल पॉइंटर लौटाता है और इस मामले में यह "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 स्ट्रक्चर बनाया और ग्रेट ब्रिटेन के वर्तमान मुद्रा प्रतीक को प्रदर्शित करने के लिए इसका उपयोग किया, जो £ है।