为什么_tcstod在解析字符串时使用我的windows区域设置?

时间:2015-11-25 22:02:42

标签: c++ windows parsing regional-settings

与Windows相关的C ++问题!

我正在尝试使用_tcstod()来解析字符串以获取浮点值。通常,如果我打电话

wchar_t* endPtr;
float result = static_cast<float>(_tcstod( "12.345678", &endPtr));

我得到一个12.345678的浮点值,endPtr按预期运行。如果我在Windows区域和语言设置中更改区域小数分隔符,这实际上是行为不端。具体来说,如果我从“。”更改小数分隔符。到“,”,突然_tcstod只返回值12而不是整个事物。之后的任何事情。被砍掉了。

我是否有某种方法可以解析字符串中的float值,同时对我的Region设置不可知?

1 个答案:

答案 0 :(得分:0)

为什么_tcstod在解析字符串时会使用我的Windows区域设置?

因为它应该是。

我是否有某种方法可以解析字符串中的浮点值,同时与我的区域设置无关?

当然。在C ++中,最简单的方法是使用字符串流并使用默认或“C”语言环境填充它。