¿Cómo se configura la configuración regional de cout para insertar comas como separadores de miles?
Dado el siguiente código:
cout << 1000;
Me gustaría el siguiente resultado:
1,000
Esto se puede hacer usando std :: locale y la función cout.imbue (), pero me temo que me falta un paso aquí. ¿Puedes distinguirlo? Actualmente estoy copiando la configuración regional actual y agregando una faceta de separación de miles, pero la coma nunca aparece en mi salida.
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;
}