Ja, dies kann in C++ automatisch geschehen, indem die richtige Facette für das Gebietsschema eingestellt wird.
#include <iostream>
#include <locale>
#include <string>
template<typename CharT>
struct Sep : public std::numpunct<CharT>
{
virtual std::string do_grouping() const {return "\003";}
};
int main()
{
std::cout.imbue(std::locale(std::cout.getloc(), new Sep <char>()));
std::cout << 123456789 << "\n";
}
Hinweis: Die C-Locale (die Locale, die verwendet wird, wenn Ihre Anwendung keine Locale festlegt) verwendet kein Tausendertrennzeichen. Wenn Sie das Gebietsschema Ihrer Anwendung auf eine bestimmte Sprache einstellen, wird sie die sprachenspezifische Methode der Gruppierung übernehmen (ohne dass Sie etwas Ausgefallenes wie oben tun müssen). Wenn Sie das Gebietsschema auf die aktuellen Spracheinstellungen Ihres Rechners (wie vom Betriebssystem definiert) und nicht auf ein bestimmtes Gebietsschema festlegen möchten, verwenden Sie "" (leere Zeichenfolge) als Gebietsschema.
So legen Sie das Gebietsschema auf der Grundlage der spezifischen Einstellungen Ihres Betriebssystems fest:
int main()
{
std::cout.imbue(std::locale(""));
std::cout << 123456789 << "\n";
}