Dezimalpunkt an Stelle von Dezimalkomma benötigt



  • Hallo zusammen,

    wie kann ich in Visual C++ einen Dezimalpunkt erzwingen?

    sprintf("%s", doubleSignal);

    Beispielausgabe unter GCC: 10.2 (richtig ich brauche einen Punkt)
    Beispielausgabe unter VisualC++: 10,2 (falsch!!!)

    Grüße, Kevin



  • Hallo zusammen,

    die folgende Routine lößt das Problem:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main()
    {
        char str[] = "Das ist ein Punkt: ,.";
    
        printf("\n%s\n", str);
    
        int len = strlen(str);
        int i;
    
        for (i=0; i<len; i++)
        {
            if(str[i]==44)
            {
               str[i]=46;
            }
        }
    
        printf("\n%s\n", str);
    
        return EXIT_SUCCESS;
    }
    

    Hab´s mal wieder selber rausbekommen...



  • Ein wenig eleganter gehts vielleicht mit std::locale. Ich hatte das gleiche Problem nur umgekehrt. Gelöst hab ichs dann so:

    out1.imbue(std::locale("german"))
    


  • bob.george schrieb:

    Ein wenig eleganter gehts vielleicht mit std::locale. Ich hatte das gleiche Problem nur umgekehrt. Gelöst hab ichs dann so:

    out1.imbue(std::locale("german"))
    

    Hi,

    wo müsste man das einfügen?
    Wenn die Lösung funktionier ist das doch ansehnlicher.
    gruß



  • nkler schrieb:

    bob.george schrieb:

    Ein wenig eleganter gehts vielleicht mit std::locale. Ich hatte das gleiche Problem nur umgekehrt. Gelöst hab ichs dann so:

    out1.imbue(std::locale("german"))
    

    Hi,

    wo müsste man das einfügen?
    Wenn die Lösung funktionier ist das doch ansehnlicher.
    gruß

    Naja out1 ist der Name des Ausgabstreams. Also erst diesen definieren und dann das locale.



  • Du musst die locale-Einstellungen auf deinen gewünschten Wert stellen, also z.B.

    #include <locale.h>
    #include <stdio.h>
    
    int main()
    {
      setlocale(LC_ALL, "C");
      printf("\n Standard-Locale: %f",3.141);
      setlocale(LC_ALL, "German");
      printf("\n Deutsch-Locale: %f",3.141);
      return 0;
    }
    

Anmelden zum Antworten