Piszę pozycje statusu GPS w stałych zdaniach NMEA, gdzie część ułamków geograficznych minut przychodzi zawsze po kropce. Jednak w systemach, w których locale definiuje przecinek jako separator dziesiętny, funkcja atof ignoruje okres i całą część ułamkową.Niezależne od lokalizacji "atof"?
Jaka jest najlepsza metoda rozwiązania tego problemu? Długi/szerokość geograficzna w przechowywanych w tablicy znaków, jeśli to ma znaczenie.
Przykład Kod:
m_longitude = atof((char *)pField);
Gdzie
pField[] = "01000.3897";
projekt cross-platform, skompilowane dla systemu Windows XP i CE.
Komentarz do rozwiązania:
Przyjęte rozwiązanie jest bardziej elegancki, ale this odpowiedź (i komentarz) Warto też wiedzieć, jak szybko naprawić
Czy możesz podać nam kilka przykładów danych, z którymi musisz pracować? To może nam pomóc w lepszym rozwiązaniu. – suszterpatt
m_longitude = atof ((char *) pField); gdzie pField [] = "01000.3897"; Projekt międzyplatformowy, skompilowany dla systemów Windows XP i CE. – tomash
Czy istnieje uzasadniony powód, aby nie używać strtod (który ma tę samą charakterystykę w ustawieniach regionalnych, ale ma lepszą obsługę błędów)? – AProgrammer