десятичный формат — десятичный разделитель в переполнении стека

Я застрял со следующей проблемой и надеюсь, что кто-то может мне помочь. Я хочу использовать библиотеку, где я не могу получить доступ к исходному коду. (только * .h) В этой библиотеке в определенной функции читается ASCII-файл.

  • Если я использую эту функцию в простом main.cpp, все работает нормально.

Output: Test [-0.06 0.08 -0.02]*

  • Если я свяжу библиотеку в моем большом проекте (много внешних библиотек) и вызову функцию

Output: Test [-0 0 -0]

Я думаю, что десятичный разделитель изменился в моем большом проекте.

Любая идея, как решить эту проблему, если я не могу получить доступ к источнику библиотеки?

Я программирую на Linux Ubuntu на C ++ с g ++ 4.8.1. Это библиотека старого коллеги (уже связался с ним по поводу источника, но я не знаю, есть ли у него src), где у меня есть только статические библиотечные файлы * .a и * h.

Пример кода:

Mesh* vMesh = MeshLoader::load(file);
Vec3* toPrint  = vMesh->getVertex(4);
std::cout<<"Output: Test:"<<std::endl;
toPrint->print();

Но этот код на самом деле ничего не говорит, так как я не могу получить доступ к функциям * .cpp code

-2

Решение

Ну, так как я не могу видеть источник, я должен был угадать используемый язык в lib и потом переключиться на мой старый язык. Не приятно, но ..

std::setlocale(LC_NUMERIC, "en_US"); //<-- guessed
...
std::setlocale(LC_NUMERIC, "de_DE"); //<-- my standard

Спасибо @numpunct и @Panagiotis Kanavos

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector