1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
// moneypunct example
#include <iostream> // std::cout
#include <locale> // std::locale, std::moneypunct, std::use_facet
// overload inserter to print patterns:
std::ostream& operator<< (std::ostream& os, std::moneypunct<char>::pattern p)
{
for (int i=0; i<4; i++)
switch (p.field[i]) {
case std::moneypunct<char>::none: std::cout << "none "; break;
case std::moneypunct<char>::space: std::cout << "space "; break;
case std::moneypunct<char>::symbol: std::cout << "symbol "; break;
case std::moneypunct<char>::sign: std::cout << "sign "; break;
case std::moneypunct<char>::value: std::cout << "value "; break;
}
return os;
}
int main ()
{
std::locale mylocale;
const std::moneypunct<char>& mp = std::use_facet<std::moneypunct<char> >(mylocale);
std::cout << "moneypunct in locale \"" << mylocale.name() << "\":\n";
std::cout << "decimal_point: " << mp.decimal_point() << '\n';
std::cout << "thousands_sep: " << mp.thousands_sep() << '\n';
std::cout << "grouping: " << mp.grouping() << '\n';
std::cout << "curr_symbol: " << mp.curr_symbol() << '\n';
std::cout << "positive_sign: " << mp.positive_sign() << '\n';
std::cout << "negative_sign: " << mp.negative_sign() << '\n';
std::cout << "frac_digits: " << mp.frac_digits() << '\n';
std::cout << "pos_format: " << mp.pos_format() << '\n';
std::cout << "neg_format: " << mp.neg_format() << '\n';
return 0;
}
| |