Namespaces
Variants

std::moneypunct<CharT,International>:: thousands_sep, do_thousands_sep

From cppreference.net
Definiert im Header <locale>
public :
char_type thousands_sep ( ) const ;
(1)
protected :
virtual char_type do_thousands_sep ( ) const ;
(2)
1) Öffentliche Memberfunktion, ruft die Memberfunktion do_thousands_sep der am stärksten abgeleiteten Klasse auf.
2) Gibt das Zeichen zurück, das als Trennzeichen zwischen Zifferngruppen beim Parsen oder Formatieren der ganzzahligen Teile von Geldbeträgen verwendet wird.

Rückgabewert

Das Objekt vom Typ char_type , das als Tausendertrennzeichen verwendet werden soll. In gängigen US-Lokalisierungen ist dies ',' oder L ',' .

Beispiel

#include <iomanip>
#include <iostream>
#include <iterator>
#include <locale>
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';
}

Ausgabe:

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

Siehe auch

[virtual]
liefert die Anzahl der Ziffern zwischen jedem Paar von Tausendertrennzeichen
(virtuelle geschützte Elementfunktion)