学习笔记:setlocale

#include <locale.h>

void show_current_locale_settting(){
	
	char* name = setlocale(LC_ALL,NULL) ;
	struct lconv * lc = localeconv();

	std::cout << "当前的locale设置是: " << name << std::endl;
	std::cout << "  数值的千位符是:" << localeconv()->thousands_sep   << std::endl;
	std::cout << "  货币符号是:"     << localeconv()->currency_symbol << std::endl;
	std::cout << std::endl;
}

int main()
{
	std::cout << "程序启动后: " << std::endl;
	show_current_locale_settting();
   
	std::cout << "修改货币类别相关的参数: " << std::endl;
	setlocale (LC_MONETARY,"");
	show_current_locale_settting();

	std::cout << "修改全部类别的参数: " << std::endl;
	setlocale (LC_ALL,"");
	show_current_locale_settting();

	/*
	程序启动后:
当前的locale设置是: C
  数值的千位符是:
  货币符号是:

修改货币类别相关的参数:
当前的locale设置是: LC_COLLATE=C;LC_CTYPE=C;LC_MONETARY=Chinese (Simplified)_Peo
ple's Republic of China.936;LC_NUMERIC=C;LC_TIME=C
  数值的千位符是:
  货币符号是:¥

修改全部类别的参数:
当前的locale设置是: Chinese (Simplified)_People's Republic of China.936
  数值的千位符是:,
  货币符号是:¥
	*/
}

可以只修改一个catalog,例子中是修改LC_MONETARY。所以locale查询时,需要分别枚举每个catalog对应的locale名字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值