
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ IOS::imbue() function
The C++ std::ios::imbue() function is used to set or change the locale for input and output streams. It is used to customize the formatting of data by changing the locale associated with the stream. It allows you to handle the locale-specific requirements like number formatting, date and time representation.It takes the std::locale object as its parameter and returns the previous locale of the stream.
Syntax
Following is the syntax for std::ios::imbue() function.
locale imbue (const locale& loc);
Parameters
- loc − It indicates the locale object to be imbued as the new locale for the stream.
Return Value
The locale object associated with the stream before the call.
Exceptions
If an exception is thrown, the stream is in a valid state.
Data races
Modifies the stream object.
Concurrent access to the same stream object may cause data races.
Example
In the following example, we are going to consider the basic usage of the imbue() function.
#include <iostream> #include <locale> int main() { std::cout.imbue(std::locale()); std::cout << "Current Locale : " << std::cout.getloc().name() << std::endl; return 0; }
Output
Output of the above code is as follows −
Current Locale : C
Example
Consider the following example, where we are going to use the US English locale, which formats numbers with commas as thousand separators.
#include <iostream> #include <locale> int main() { std::locale a("en_US.utf8"); std::cout.imbue(a); std::cout << 1122343.89 << std::endl; return 0; }
Output
Following is the output of the above code −
1,122,343.89
Example
Let's look at the following example, where we are going to use the US English to print a monetary value in the appropriate format.
#include <iostream> #include <locale> #include <iomanip> int main() { std::locale a("en_US.utf8"); std::cout.imbue(a); std::cout << std::showbase << std::put_money(123431232) << std::endl; return 0; }
Output
If we run the above code it will generate the following output −
$1,234,312.32