Using monetary I/O manipulators
In the previous recipe, we have looked at some of the manipulators that can be used to control the input and output streams. The manipulators discussed there were related to numeric and text values. In this recipe, we will see how to use standard manipulators to write and read monetary values.
Getting ready
You should be familiar with locales and how to set them for a stream. This topic is discussed in the Using localized settings for streams recipe. It is recommended that you read that recipe before continuing.
The manipulators discussed in this recipe are available in the std
namespace in the <iomanip>
header.
How to do it...
To write a monetary value to an output stream, you should do the following:
- Set the desired locale for controlling the monetary format:
std::cout.imbue(std::locale("en_GB.utf8"));
- Use either a
long double
or astd::basic_string
value for the amount:
long double mon = 12345.67; std::string smon = "12345.67";
- Use a...