当前位置: 首页 > news >正文

C语言从头学57——学习头文件locale.h

       头文件<locale.h>中定义了一些宏和函数,涉及程序的本地化设置;这些设置包括:数字格式、货币格式、字符集、日期和时间格式等。
一、定义的宏:
       LC_COLLATE:会影响字符串比较函数strcoll()和字符串转换函数strxfrm()
       LC_CTYPE:会影响到字符处理函数的处理结果
       LC_MONETARY:会影响选用的货币格式
       LC_NUMERIC:会影响printf()输出的数字格式。
       LC_TIME:影响时间格式函数strftime()和宽字符时间格式函数wcsftime() 。
       LC_ALL:将以上所有类别设置为给定的语言环境(用的最多)
二、函数
  1、setlocale()函数
        在《C语言从头学53——字符集》中关于使用宽字节相关函数时曾使用过这个函数。它的功能是设置当前的地区。
        使用格式:setlocale(参1,参2);
               参1:上面定义的几个宏之一
               参2: "C" (正常模式)、 "" (本地模式)
        返回值:返回一个字符串指针,表示已经设置好的格式;失败则返回空指针NULL。
        说明:
          a. 一般进行本地化格式设置使用语句:set_locale(LC_ALL, "");
          b. 由于返回值是已经设置好的格式,将参2改成NULL可以获得当前的地区格式化设置;语句为:char* ch=setlocale(LC_ALL, NULL);。查询不改变当前设置内容。
    2、localeconv()函数
       该函数用来获取当前地区格式的详细信息,该函数的结果需要一个lconv类型的结构体指针接收,结构体里面包含了地区格式信息。
       使用格式:struct lconv* lco=localeconv();//无参
       可获得属性如下(部分):
       lco->mon_decimal_point //货币的十进制小数点字符
       lco->mon_thousands_sep //货币的千位分隔符
       lco->mon_grouping //货币的分组描述符
       lco->positive_sign //货币的正值符号
       lco->negative_sign //货币的负值符号
       lco->currency_symbol //货币符号
       lco->frac_digits //打印货币金额时小数位数
       lco->p_cs_precedes //1—货币符号在非负金额前面,0—在金额后面
       lco->n_cs_precedes //1—货币符号在负的货币金额前面,0—在金额后面
       lco->p_sep_by_space //非负的货币金额与货币符号之间的分隔字符
       lco->n_sep_by_space //负的货币金额与货币符号之间的分隔字符
       lco->p_sign_posn //非负值的正值符号的位置
       lco->n_sign_posn //负值的负值符号的位置
三、获得信息程序举例(示意): 

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<locale.h>
int main(void)
{setlocale(LC_ALL, ""); //按照当前简体中文win10系统设置struct lconv* lco = localeconv();printf("打印货币金额时小数位数:%d\n", lco->frac_digits); //运行结果:打印货币金额时小数位数:2printf("货币符号:%s\n", lco->currency_symbol); //运行结果:货币符号:¥getchar();return 0;
}


http://www.mrgr.cn/news/23092.html

相关文章:

  • llvm后端之函数栈帧的创建与销毁
  • C语言深入理解指针5
  • LeetCode之区间
  • Pygame中Sprite类实现多帧动画3-3
  • 宽哥之家小程序任务脚本
  • 关于使用 @iconify/vue2图标库组件的离线使用
  • 【大数据】如何读取多个Excel文件并计算列数据的最大求和值
  • 数据结构与算法-morris遍历
  • 三、TOGAF(概述)
  • Python中的接口艺术:从概念到实战
  • leetcode 101.对称二叉树
  • OpenCV-轮廓检测
  • 开放式耳机具备什么特点?2024排行前十的四款百元蓝牙耳机推荐
  • 深入探讨:为什么会出现 0.30000000000000004 以及如何避免浮点数精度问题
  • 猫咪浮毛有这么严重?你不知道的浮毛清理好物——宠物空气净化器
  • 基于IndexDB+md-editor-v3实现的简单的文章书写小系统
  • Python自动化测试面试题-Selenium篇
  • Pow(x, n)
  • 2024CCPC网络预选赛 I. 找行李 【DP】
  • yum源配置与静态配置地址