C++中的小数分隔符

Decimal separator in C++

本文关键字:分隔符 小数 C++      更新时间:2023-10-16

我遇到了以下问题,希望有人可以帮助我。我想使用无法访问源代码的库。(仅 *.h)在这个库中的某个函数中读取 ASCII 文件。

  • 如果我在普通主系统中使用此功能.cpp一切正常。

Output: Test [-0.06 0.08 -0.02]*

  • 如果我在我的大项目(许多外部库)中链接库并调用函数

Output: Test [-0 0 -0]

我认为小数分隔符在我的大项目中发生了变化。

如果我无法访问库的源代码,知道如何解决这个问题吗?

我在 Linux Ubuntu 机器上编程,使用 g++4.8.1 C++。这是一个老同事的库(已经联系了他以获取源代码,但不知道他是否还有 src),我只有静态库文件 *.a 和 *h 文件。

示例代码:

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

但是这段代码实际上什么也没说,因为我无法访问函数 *.cpp 代码

好吧,由于我看不到源代码,我不得不猜测库中使用的语言环境,然后切换回我的旧语言环境。不好,但是..

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

Thx @numpunct 和@Panagiotis Kanavos