为什么在解析字符串时使用我的windows区域设置(_tcstod)
Why is _tcstod using my windows region settings when parsing a string?
Windows相关C++问题!
我正在尝试使用_tcstod()来解析一个字符串,以获得一个浮点值。通常情况下,如果我打电话给
wchar_t* endPtr;
float result = static_cast<float>(_tcstod( "12.345678", &endPtr));
我得到的浮点值为12.345678,endPtr的行为与预期一致。如果我在Windows区域和语言设置中更改区域十进制分隔符,这实际上是错误的。具体来说,如果我将十进制分隔符从"."更改为",",那么_tcstod突然只返回值12,而不是整个值。之后的任何事情。
在对Region设置不可知的情况下,是否有某种方法可以解析字符串中的浮点值?
为什么_tcstod在解析字符串时使用我的windows区域设置
因为它应该。
在对Region设置不可知的情况下,是否有某种方法可以解析字符串中的浮点值
当然。在C++中,最简单的方法是使用字符串流并为其注入默认或"C"语言环境。
相关文章:
- 在 Linux 中存储区域设置名称的缓冲区大小应该是多少?
- 提升区域设置规范化带状字符,但不规范化重音
- 是否有任何区域设置会影响宽字符编码?
- 提升获取文本的区域设置"Conversion failed"
- 提升 1.41.0 : 提升::区域设置替代方案?
- std::locale 向"en_US.UTF-8"区域设置抛出runtime_error异常
- 默认情况具有哪个区域设置
- 区域设置是否有定义负号的方面?
- QT 将文本翻译成特定的区域设置
- 我可以强制 QFileDialog 使用系统区域设置而不是系统语言吗?
- 如何调用 GetAltMonthNames 来填充外部区域设置月份字符串的安全数组
- 提升区域设置不完整类型boundary_indexing<char32_t>
- 默认区域设置"root"在 ICU 中如何工作?
- std::regex总是可以识别区域设置吗?
- std::string 的运算符<是否应该受到当前区域设置的影响?
- C++为任何区域设置区域设置
- 如何显示与系统不同的区域设置的QDate月
- Mac OS X 中的设置区域设置不起作用
- 在 OS X 上设置区域设置崩溃
- C++在整个程序中设置区域设置