关于语言环境的问题

时间:2010-07-30 15:22:34

标签: c++

请用c ++说明语言环境的用法目的?我已阅读文件,但不要理解请帮助

1 个答案:

答案 0 :(得分:9)

基本目的是本地化应用程序。例如,在美国,带有小数分隔符的大数字通常写成:“1,234.56”。在整个欧洲大部分地区,相同的数字通常都写成:“1.234,56”。

区域设置允许您将有关此类格式(以及国家,语言,文化等不同的其他内容)的信息隔离到一个位置。例如,我可能会使用:

std::locale loc("");
std::cout.imbue(loc);

std::cout << 1234.56;

未命名的语言环境(“”)很特殊:它会自动选择用户配置的任何语言环境。当我运行此代码时,我得到的输出是:“1,234.56”。其他人可以运行完全相同的代码,但如果他们的环境配置为其他约定,他们可能会得到“1.234,56”或“1 234,56”等。

因此,区域设置购买我们的大部分内容(在这种情况下)是保持编写一个数字,与特定受众的格式编号分开。当然,一个语言环境有许多“方面”,每个方面都包含一个单独的......好的,本地化的方面,例如格式化数字,格式化货币,确定什么被认为是小写或大写字母等等