Stream Formatierung: Punkt durch Komma ersetzen bei Floats


  • Administrator

    Zeig mal her, wie du probiert hast, das std::local zu erzeugen. Der Code von HumeSikkins ist absolut korrekt und kompiliert einwandfrei. Vermutlich hast du nur etwas falsch abgeschrieben.

    Grüssli



  • @bob.george
    Kann eigentlich nicht sein, laut cpp-reference stimmt der Code. Zeig mal deinen und welchen Compiler benutzt du?

    EDIT:
    Da war einer schneller...



  • Habs eigentlich per Copy&Paste übernommen.

    Hier die Header-Datei test.h:

    #include <iostream>
    #include <locale>
    using namespace std;
    
    class CommaAsDecimalPoint : public numpunct_byname<char>
    {
    public:
      CommaAsDecimalPoint(const char* name)
        : numpunct_byname<char>(name)
      {}
    protected:
      char do_decimal_point() const
      {
        return ',';
      }
    };
    

    ...und hier die test.cpp

    #include "test.h"
    
    void main()
    {
      locale l(locale(""), new CommaAsDecimalPoint(""));
      locale old = cout.imbue(l);
      cout << 3.124 << endl;
      cout.imbue(old);
    }
    

    Compiler ist Visual C++ 6.0.



  • Bitte Cpp-Tags (unter dem Lachsmiley) benutzen 😉 . Das Problem wird dein Compiler sein. Ich schätze mal das du eine andere "Version" von std::locale hast. Bei mir zumindest funktionuckelt der Code...

    Ich denke mal das jeden Augenblick ein haxx0r-progg0r wie Dravere postet und mehr darüber weiß^^.


  • Administrator

    bob.george schrieb:

    Compiler ist Visual C++ 6.0.

    Da haben wir das Problem. Schmeiss das Ding weg, verbrenne es, und entsorg die Asche als Sondermüll 😃
    Das Ding ist nicht nur veraltet, sondern die Unterstützung für C++ ist miserabel und entspricht nicht dem Standard von 1998. Ein Update wäre dringend angebracht. Visual C++ 2008 Express Edition bekommst du gratis 😉

    Grüssli

    PS: Nächstes mal Code-Tags verwenden, bzw. C/C++ Tags [cpp].


  • Administrator

    Kóyaánasqatsi schrieb:

    Ich denke mal das jeden Augenblick ein haxx0r-progg0r wie Dravere postet und mehr darüber weiß^^.

    haxx0r-progg0r? Ich? Ne! 🕶

    Grüssli



  • Hm, is halt im Unternehmen derzeit der Standard-Compiler. Blöd, aber trotzdem vielen Dank!



  • bob.george schrieb:

    Hm, is halt im Unternehmen derzeit der Standard-Compiler. Blöd, aber trotzdem vielen Dank!

    Die Lizenzen waren scheinbar billiger 😃 . Aber mal ernsthaft; Es wird von euch verlangt das ihr C++ mit VS-C++ 06 proggt?


  • Administrator

    bob.george schrieb:

    Hm, is halt im Unternehmen derzeit der Standard-Compiler. Blöd, aber trotzdem vielen Dank!

    Schlag denen mal ein Update vor. Wobei ... wahrscheinlich wäre das noch ziemlich teuer, da grosse Teile des alten Codes nicht mehr funktionieren würden. Trotzdem sollten sie es mal tun, spätestens wenn dann die Kompiler für den nächsten Standard kommen, denn dann sind sie bereits zwei Standards hinten nach 😉

    Ich weiss leider nicht, wo man noch Dokumentationen zum Visual C++ 6.0 findet. Ich habe nur noch sehr kurz mit dem gearbeitet und bin dann rasch auf den Kompiler 2003 umgestiegen. Vielleicht wissen es noch ein paar ältere Herren hier im Forum. Aber bis die über die Strasse kommen, dauert es manchmal ein wenig ... 🤡 😃

    Grüssli



  • @Dravere: das ist genau das Problem. Die Kosten des Umstiegs sind sehr hoch und es fehlt einfach an Zeit. Ich bin hier zwar so eine Art Insel, aber deswegen möchte ich trotzdem lieber beim Unternehmensstandard bleiben.


Anmelden zum Antworten