std::moneypunct::thousands_sep, std::moneypunct::do_thousands_sep

来自cppreference.com
< cpp‎ | locale‎ | moneypunct

 
 
 
 
定义于头文件 <locale>
public:
char_type thousands_sep() const;
(1)
protected:
char_type virtual do_thousands_sep() const;
(2)
1)
公共成员函数,调用最派生类的成员函数do_thousands_sep.
原文:
public member function, calls the member function do_thousands_sep of the most derived class.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
返回字符之间的分隔符的数字组解析或格式化货币价值的不可分割的组成部分,被用作.
原文:
returns the character to be used as the separator between digit groups when parsing or formatting the integral parts of monetary values.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

char_type类型的对象使用千位分隔符。专业的std::moneypunct回报的标准’,’L’,’.
原文:
The object of type char_type to use as the thousands separator. The standard specializations of std::moneypunct return ’,’ and L’,’.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

#include <locale>
#include <iostream>
#include <iomanip>
#include <iterator>
struct space_out : std::moneypunct<char> {
    pattern do_pos_format()      const { return { {value, none, none, none} };}
    int do_frac_digits()         const { return 0; }
    char_type do_thousands_sep() const { return ' ';}
    string_type do_grouping()    const { return "\002";}
};
int main()
{
    std::cout.imbue(std::locale("en_US.UTF-8"));
    std::cout << "american locale: " << std::showbase
              << std::put_money(12345678.0)<< '\n';
 
    std::cout.imbue(std::locale(std::cout.getloc(), new space_out()));
    std::cout << "locale with modified moneypunct: "
              << std::put_money(12345678.0)<< '\n';
}

输出:

american locale: $123,456.78
locale with modified moneypunct: 12 34 56 78

[编辑] 另请参阅

千位分隔符每一对之间提供的数字的位数
原文:
provides the numbers of digits between each pair of thousands separators
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(虚受保护成员函数)