Почему sscanf использует запятую вместо точки при использовании русской локали в linux?
www.cplusplus.com/reference/locale/numpunct/decimal_point/ не?
Очень осторожно пишите программы, работа которых может зависеть от установленной локали, встречал людей, которые меняют параметры локали в windows очень причудливым образом.
Везде, где возможна подобная неоднозначность принудительно прописывать параметры локали (как в windows так и в linux).

В данном конкретном случае лучше постараться избежать сохранение и использование текстового представления таких неоднозначных вещей как вещественные числа и даты… первый же запрос в гугл на вашу задачу — сериализация вещественного числа в целочисленном представлении: stackoverflow.com/questions/4733147/portability-of-binary-serialization-of-double-float-type-in-c