
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
clocale Header File in C++
Given the task is to show the use of <clocale> header file in C++.
The <clocale> header file is a part of the localization library which further is a part of the C++ standard library. Originally it was in the C standard library with the name as <locale.h>.
The functions and declarations included in this header file are used for tasks that require date formats and currency symbols of different countries.
The functions included in <clocale> header file are setlocale() and localeconv()
The macros that are defined in this header file and are used in these two functions are −
LC_ALL-> It sets everything.
LC_COLLATE-> It affects strcoll and strxfrm functions.
LC_CTYPE-> It affects all character functions.
LC_MONETARY-> It affects the monetary information provided by localeconv function.
LC_NUMERIC-> It affects decimal-point formatting and the information provided by localeconv function.
LC_TIME-> It affects the strftime function.
localeconv()
The localeconv() function sets or reads the information that is location dependent.
Syntax
The syntax for localeconv() is as follows −
Struct lconv*localeconv()
setlocale()
The setlocale() function installs the specified system locale and sets the locale information as per the current program.
Syntax
The syntax for setlocale() is as follows−
char *setlocale(int category, const char *locale)
Example
Input: setlocale(LC_ALL, "en_GB") s = setlocale(LC_ALL, NULL) Output: C
setlocale() returns a pointer to the string, if it identifies it will return the C locale otherwise it just returns a null pointer and in this case it returns “C”.
Approach used in the below program as follows −
- First call setlocale() function inside the main() function and set the category as LC_MONETARY and the locale as en_GB.
- Then create the structure lconv with char pointer, let’s say, lc and keep it equal to the calling of the localeconv() function so that the localeconv() function can return a pointer to the structure that we have created.
- The use the printf statement to print the current currency.
Example
#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; }
Output
If we run the above code it will generate the following output −
£
In the output we get the currency symbol of pound which is the currency of Great Britain because in the setlocale function we selected the monetary category that is LC_MONETARY and set the locale as "en_GB" where GB is the abbreviation for Great Britain. Further we created the lconv structure and used it for displaying the current currency symbol of Great Britain, that is £.