【摘要】:第四种与第三种类似,不同之处在于它的第二个参数是区域表示代码字符串localeCode,指明facet的所属区域。表12-6区域表示代码(续)例12-2给出了创建和使用区域表示的过程,目的是按英语、法语、德语的格式显示日期。通过把一个区域表示的facet修改成另一个区域表示的相应facet,可以创建混合区域表示。例12-3例12-3的执行结果为:本例在调用locale类的构造函数时,新建的locale对象是法语区域表示,但该对象的时间facet被替换为美国版。
由于默认区域表示不能修改,因此要根据需要创建区域的表示对象。std::locale类提供了如下4种创建区域表示对象的方法:
第一种根据全局区域表示创建一个locale对象。第二种根据localeCode指明的区域表示代码字符串来创建locale对象。第三种根据名为locale1的locale对象创建一个副本,并用locale2对象中cat指明的facet代替locale1的facet。第四种与第三种类似,不同之处在于它的第二个参数是区域表示代码字符串localeCode,指明facet的所属区域。区域表示代码详见表12-6。
表12-6区域表示代码
(续)
例12-2给出了创建和使用区域表示的过程,目的是按英语、法语、德语的格式显示日期。此例的功能是:当程序调用仅有一个空字符串实参的locale构造函数时,返回的locale对象根据系统的用户设置被设置为本地区域表示。用户通常可以通过设置系统变量(LANG)来设置本地区域表示。
例12-2
例12-2的执行结果为:
(www.xing528.com)
在上述代码中,代码行“std::locale native("");”是值得仔细体会的。
通过把一个区域表示的facet修改成另一个区域表示的相应facet,可以创建混合区域表示。
例12-3
例12-3的执行结果为:
本例在调用locale类的构造函数时,新建的locale对象是法语区域表示,但该对象的时间facet被替换为美国版。导致该区域表示的日期具有美国英语格式,其他facet仍支持法语格式。LC_TIME是变量。区域表示的种类值见表12-7。
表12-7 区域表示的种类值
(续)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。