snprintf schreibt ein Komma statt einem Punkt bei Float-Wert

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
theprogrammer12
Beiträge: 38
Registriert: 12. August 2009 20:02

snprintf schreibt ein Komma statt einem Punkt bei Float-Wert

Beitrag von theprogrammer12 »

Hallo!

Ich habe ein kleines Problem mit snprintf: Und zwar schreibt es wenn ich mit %f einen Float Wert angebe
z.B. statt 35.344234 35,344234 also mit Komma statt Punkt. Die dadurch erzeugten Strings schreibe ich dann
in eine XML-Datei und lese sie mit einem anderen Programm aus, welches aber bedingt durch das Komma
nur die Ziffern davor ausliest, also in diesem Fall 35.
ABER: Das Problem tritt nur in dem Qt-Projekt auf. Ich kann mir das nur dadurch erklären, dass Qt das automatisch
verstellt.
Also kann man irgendwie erzwingen, dass snprintf einen Punkt benutzt?

EDIT: Das normale printf macht übrigens das selbe und atof liest die Kommas auch aus
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Re: snprintf schreibt ein Komma statt einem Punkt bei Float-

Beitrag von solarix »

"printf" & CO reagiert auf die Spracheinstellung.. google findet rund um dieses "Problem" viele..viele..viele Beiträge :wink:

Trotzdem hier ein paar Beispiele (funktioniert auf meinem Ubuntu..)

Code: Alles auswählen

#include <locale.h>
#include <stdio.h>

int main()
{
  setlocale(LC_NUMERIC,"C");         // C-Standard
  printf("C: %f\n",23.23);
  
  setlocale(LC_NUMERIC,"de_DE.UTF8");// Deutsch
  printf("de_DE: %f\n",23.23);

  setlocale(LC_NUMERIC,"");          // Voreinstellung des Computers
  printf("Default: %f\n",23.23);

  return 0;
}
hth..
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: snprintf schreibt ein Komma statt einem Punkt bei Float-

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten