gpt4 book ai didi

c++ - 为什么 std::locale loc ("en_US") 抛出异常?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:17 25 4
gpt4 key购买 nike

我试图用美国或英国语言环境字符串实例化一个 std::locale 对象。
std::locale loc("en_US")std::locale loc("en_GB") 都抛出一个错误的语言环境名称运行时异常.使用 """C" 创建语言环境效果很好;但是,我在设置单个国家/地区时遇到问题。

我想这样做的原因是出于单元测试的目的,以确保一组字符串排序方法能够正常工作。

我还应该指出,我正在使用 Visual Studio 2008 在 Windows 中编写代码,如果可能的话,我希望让我的代码跨平台。

最佳答案

std::locale 支持的字符串是特定于实现的;可能是实现不支持您作为参数传递的字符串。

由于您在 Windows 中编程,您可能会对 Language Strings 感兴趣,其中列出了 setlocal 使用的语言标识符,以及 Country/Region Strings对于国家标识符。据我所知,语言标识符使用连字符(例如 en-USnl-BEzh-HK)。

您可以在 std::locale::global(std::locale("zh-CN")) Gets "Bad locale name"?? 上找到更多信息

关于c++ - 为什么 std::locale loc ("en_US") 抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com