std::numpunct::grouping
STD::numpoint::分组,做[医]分组
Defined in header | | |
---|---|---|
public: std::string grouping() const; | (1) | |
protected: virtual std::string do_grouping() const; | (2) | |
1%29公共成员函数,调用成员函数do_grouping
最派生的类。
2%29返回std::string持有,在每一个char元素的数值输出的每一组中的数字数。num_put::put()28%,因此,basic_ostream::operator<<%29
组存储为二进制值:三位组是'\3'
,而51位组是'3'
返回字符串的索引0处的字符保存最右边组中的数字数。索引1处的字符保存第二组中右边的数字数等。返回字符串中的最后一个字符所指示的分组被重新用于对%29的%28左部分中的所有剩余数字进行分组。
返回值
类型对象std::string
抱着这些人。标准专业std::numpunct
返回一个空字符串,表示没有分组。典型分组%28例如。大en_US
地区%29返回"\003"
...
例
二次
#include <iostream>
#include <limits>
#include <locale>
struct space_out : std::numpunct<char>
{
char do_thousands_sep() const { return ' '; } // separate with spaces
std::string do_grouping() const { return "\1"; } // groups of 1 digit
};
struct g123 : std::numpunct<char>
{
std::string do_grouping() const { return "\1\2\3"; }
};
int main()
{
std::cout << "default locale: " << 12345678 << '\n';
std::cout.imbue(std::locale(std::cout.getloc(), new space_out)
std::cout << "locale with modified numpunct: " << 12345678 << '\n';
std::cout.imbue(std::locale(std::cout.getloc(), new g123)
std::cout << "Locale with \\1\\2\\3 grouping: " <<
std::numeric_limits<unsigned long long>::max() << '\n';
}
二次
产出:
二次
default locale: 12345678
locale with modified numpunct: 1 2 3 4 5 6 7 8
Locale with \1\2\3 grouping: 18,446,744,073,709,551,61,5
二次
另见
do_thousands_sep virtual | provides the character to use as thousands separator (virtual protected member function) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。