Ich analysiere GPS-Statuseinträge in festen NMEA-Sätzen, wobei der Bruchteil der geografischen Minuten immer nach der Periode kommt. Bei Systemen, in denen das Gebietsschema ein Komma als Dezimaltrennzeichen definiert, ignoriert die Funktion atof die Periode und den ganzen Bruchteil.Gebietsunabhängig "atof"?
Was ist die beste Methode, um mit diesem Problem umzugehen? Lange/Breite Zeichenfolge in Zeichen-Array gespeichert, wenn es darauf ankommt.
Beispielcode:
m_longitude = atof((char *)pField);
Wo
pField[] = "01000.3897";
plattformübergreifende Projekt, für Windows XP und CE zusammengestellt.
Kommentar zu Lösung:
akzeptierte Antwort ist eleganter, aber this Antwort (und Kommentare) lohnt sich auch als eine schnelle Lösung zu wissen,
Können Sie uns ein paar Beispiele für die Daten geben, mit denen Sie arbeiten müssen? Es könnte uns helfen, eine bessere Lösung zu bieten. – suszterpatt
m_longitude = atof ((char *) pField); wobei pField [] = "01000.3897"; Plattformübergreifendes Projekt, kompiliert für Windows XP und CE. – tomash
Gibt es einen triftigen Grund, nicht strtod zu verwenden (welches die gleiche Eigenschaft wie locale hat, aber eine bessere Fehlerbehandlung bietet)? – AProgrammer