Komma statt Punkt
-
Hallo zusammen,
ich weis die Frage ist schon oft gestellt worden aber leider konnte ich bisher noch mit keine Antwort wirklich was anfangen.
Wie kann ich mit "locale" auf deutsch umstellen? Da steht zwar immer einiges aber ich werd da echt nicht schlau. Mein Code sieht wie folg aus.ofstream(fout); fout.open(EingabeText); for(i=0;i<1100;i++) { fout << i*0.00045; }Ich hoff ich habt mir schnell eine Lösung!
MfG
-
std::cout.imbue( std::locale( "" ) );
-
Ich versteh das leider nicht. Wo muss ich den Code einfügen?
Ich hab ihn jetzt einfach mal vor die Schleife gesetzt aber da passiert nichts. Die Punkte bleiben!MfG
-
Du musst die Locale des Ausgabestreams auf Deutsch ändern. Allerdings sind die Namen der Locales nicht festgelegt. Unter Windows heißt die z.B. "German_Germany" und unter Linux "de_DE".
fout.imbue( std::locale( "de_DE" ) );(Geht das eigentlich auch global?
std::locale::global( std::locale( "de_DE") ) )tut nix...)EDIT: Irgendwie hab ich beim Testen übersehen, dass
std::locale( "" )auch die deutsche Locale liefert, wenn die Systemsprache Deutsch ist.
-
fout.imbue( std::locale( "" ) );?
-
so jetzt hab ich es eins zu eins rauskopiert. Aber es tut sich nichts! Die Punkte werden immer noch geschrieben.
Was kann ich noch machen?MfG
-
Zeig einfach mal deinen jetzigen Code.
-
#include <locale>(...)
ofstream (fout); fout.open(EingabeText); fout.imbue( std::locale("")); for(i=0;i<1100;i++) { fout << std::fixed << std::setprecision(5)<< i*0.00045 << "; "; } fout.close();
-
Versuch statt "" bei std::locale("") mal "de_DE" (Linux) oder "German_Germany" (Windows). Wenns dann klappt ist die Systemsprache nicht Deutsch.
Wenn nicht, weiss ichs auch nicht.

-
Keine Deutschen locales installiert...?!