C++ Library - <clocale>



The <clocale> header in C++ provides functions and macros that facilitate localization, which is the process of adapting software to suit the linguistic, cultural, and formatting conventions of a particular region. It handles the input and ouput according to the rules of a specific locale, such as how numbers, dates and currencies are formatted.

In C++ the standard C library <clocale> provides access to the C locale framework. The locale in C++ is categorized into different aspects, such as:

  • LC_ALL − For setting all categories at once.
  • LC_NUMERIC − Used for numeric formatting
  • LC_TIME − Used for date and time formatting.
  • LC_COLLATE − Used for string comparison and collection.
  • LC_MONETARY − Used for currency formatting.

Including <clocale> Header

To include the <clocale> header in your C++ program, you can use the following syntax.

#include <clocale>

Functions of <clocale> Header

Below is list of all functions from <clocale> header.

Sr.No. Functions & Description
1 setlocale

It gets and sets the current C locale.

2 localeconv

It gets numeric and monetary formatting details of the current locale.

Formatting Currency

In the following example, we are going to format a currency value based on the current locale.

#include <iostream>
#include <clocale>
#include <iomanip>
int main() {
   std::setlocale(LC_ALL, "en_US.UTF-8");
   double a = 1122.34;
   std::cout << "Result : " << std::showbase << std::put_money(a) << std::endl;
   return 0;
}

Output

Following is the output of the above code −

Result : 1122
Advertisements