Como você define o código do idioma cout para inserir vírgulas como separadores de milhares?
Dado o seguinte código:
cout << 1000;
Gostaria da seguinte saída:
1,000
Isso pode ser feito usando std :: locale e a função cout.imbue (), mas receio que esteja faltando uma etapa aqui. Você consegue identificar? Atualmente, estou copiando a localidade atual e adicionando uma faceta de separador de milhares, mas a vírgula nunca aparece na minha saída.
template<typename T> class ThousandsSeparator : public numpunct<T> {
public:
ThousandsSeparator(T Separator) : m_Separator(Separator) {}
protected:
T do_thousands_sep() const {
return m_Separator;
}
private:
T m_Separator;
}
main() {
cout.imbue(locale(cout.getloc(), new ThousandsSeparator<char>(',')));
cout << 1000;
}