我写了一个 C++ 函数调用的配置文件。
由于某些操作系统或操作系统中设置的语言以不同方式读取 float ,例如 (4.5
& 4,5
)
我如何在运行时检查正在运行的操作系统,以便我知道我是否应该读取带逗号或小数点的 float 。
有什么想法吗?
(我的代码在 windows 和 linux(跨平台)上都相同,但是当我在 linux 上读取包含 float 的配置文件时,它没有正确读取小数点?)
前进的方向是什么?
最佳答案
您要查找的术语是 locale
和 iostream
成员函数 imbue()
. imbue 页面上的示例代码几乎提供了您想要的确切功能。
double d;
std::locale mylocale("");
std::cin.imbue(mylocale);
std::cin << d;
最终应该以正确的形式读取变量。您可能需要从环境变量或类似变量中获取语言环境名称,具体取决于平台。在 Linux 上,它来自环境变量 LANG。我不确定 Windows。
关于c++ - 在运行时检查操作系统正在运行哪种语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19805993/