Windows相关的C++问题!
我正在尝试使用 _tcstod() 解析字符串以获得浮点值。通常,如果我打电话
wchar_t* endPtr;
float result = static_cast<float>(_tcstod( "12.345678", &endPtr));
我得到一个 12.345678 的浮点值,并且 endPtr 的行为符合预期。如果我在 Windows 区域和语言设置中更改我的区域小数分隔符,这实际上是不正常的。具体来说,如果我将小数分隔符从“。”更改为到 ",",突然 _tcstod 只返回一个值 12 而不是整个东西。之后的任何内容。被砍掉了。
有什么方法可以让我在不知道我的区域设置的情况下解析字符串中的浮点值吗?
最佳答案
为什么 _tcstod 在解析字符串时使用我的 Windows 区域设置?
因为它应该是。
有什么方法可以让我在不知道我的区域设置的情况下解析字符串中的浮点值吗?
当然。在 C++ 中,最简单的方法是使用字符串流并为其注入(inject)默认或“C”语言环境。
关于c++ - 为什么 _tcstod 在解析字符串时使用我的 Windows 区域设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33927190/