Dato il seguente codice:Come si imposta la locale di cout per inserire virgole come separatori di migliaia?
cout << 1000;
Vorrei il seguente output:
1,000
Questo può essere fatto utilizzando std :: locale, e la funzione cout.imbue(), ma temo Potrei perdere un passaggio qui. Puoi individuarlo? Attualmente sto copiando le impostazioni locali correnti e aggiungendo un facet separatore di migliaia, ma la virgola non viene mai visualizzata nel mio output.
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;
}
Hai provato a compilare il codice esatto che vuoi farci credere che stai usando? –
possibile duplicato di [Esiste una funzione built-in che separa una virgola un numero in C, C++ o JavaScript?] (Http://stackoverflow.com/questions/3479485/is-there-a-built-in- function-that-comma-separates-a-number-in-cc-or-javascri) –
C'è un memleak? –