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
snprintf schreibt ein Komma statt einem Punkt bei Float-Wert
-
- Beiträge: 38
- Registriert: 12. August 2009 20:02
Re: snprintf schreibt ein Komma statt einem Punkt bei Float-
"printf" & CO reagiert auf die Spracheinstellung.. google findet rund um dieses "Problem" viele..viele..viele Beiträge
Trotzdem hier ein paar Beispiele (funktioniert auf meinem Ubuntu..)
hth..
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;
}
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: snprintf schreibt ein Komma statt einem Punkt bei Float-
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung