我可以使用该setlocale()
函数设置语言环境.但有没有办法我可以获取语言环境并将其保存在变量中,以便我以后可以重置它.
这就是我想要做的:
str=getlocale(LC_CTYPE); setlocale(LC_CTYPE,"en_US"); ... setlocale(LC_CTYPE,str);
我该如何实现该getlocale()
功能,还是有其他选择?
您可以传递NULL
并使用返回值.看到setlocale
您还可以使用此函数通过将空指针作为locale参数传递来查找当前区域设置.在这种情况下,setlocale返回一个字符串,该字符串是当前为类别类别选择的语言环境的名称.
或者在C标准中:
7.11.1.1 setlocale函数
....如果给出了指向字符串的指针
locale
并且可以接受选择,则该setlocale
函数返回指向与category
为新语言环境指定的字符串相关联的字符串的指针 .如果无法满足选择,则该setlocale
函数返回空指针,并且不更改程序的区域设置.空指针
locale
使setlocale
函数返回指向与category
程序当前语言环境关联的字符串的指针; 程序的区域设置不会更改.
setlocale
函数返回的字符串指针使得后续调用该字符串值及其相关类别将恢复该程序的语言环境的该部分.