tausendertrennzeichen bei int
-
hi leute
gibt es eine moeglichkeit das ich bei nem ostream bei der ausgabe eines ints das tausendertrennzeichen unterdruecken kann ?
ich will nicht immer zwischen dem C locale und dem deutschen hin und her springen.
das ist muehselig und fehlertraechtig.Meep Meep
-
Hallo Meep Meep,
die Trennzeichen vor dem Dezimaltrenner kontrolliert man mit der Facette std::numpunct<>.
Beispiel:
#include <iostream> #include <locale> template< typename E > class NoGrouping : public std::numpunct< E > { protected: std::string do_grouping() const override { return std::string(); // leerer String heißt keine Trenner vor dem Dezimalpunkt } }; int main() { using namespace std; // .. so steckt man die Facette in einen ostream cout.imbue( locale( cout.getloc(), new NoGrouping< char > ) ); cout << (13*400) << endl; // -- so holt man die Facette wieder raus auto const& np = use_facet< numpunct< char > >( cout.getloc() ); auto grouping = np.grouping(); return 0; }
Gruß
Werner