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.mzph.cn/pingmian/53476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无需更换摄像头,无需施工改造,降低智能化升级成本的智慧工业开源了

智慧工业视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

JavaWeb笔记整理14——公共字段自动填充技术实现

目录 为什么需要公共字段自动填充&#xff1f; 步骤1 自定义注解AutoFill 步骤2 自定义切面AutoFillAspect 步骤3 在Mapper接口的方法上加入AutoFill注解 Before("autoFillPointCut()") JoinPoint 你能通过 JoinPoint 获取哪些信息&#xff1f; 例子中的 Join…

vue如何实现路由缓存

&#xff08;以下示例皆是以vue3vitets项目为例&#xff09; 场景一&#xff1a;所有路由都可以进行缓存 在渲染路由视图对应的页面进行缓存设置&#xff0c;代码如下&#xff1a; <template><router-view v-slot"{ Component, route }"><transiti…

大数据-119 - Flink Window总览 窗口机制-滚动时间窗口-基于时间驱动基于事件驱动

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

二、主流的架构方法论

在企业软件开发和系统设计中&#xff0c;架构方法论提供了指导原则、最佳实践和框架来帮助架构师和开发团队设计和实施高质量的软件系统。以下是一些主流的架构方法论及其特点分析&#xff1a; 1. TOGAF&#xff08;The Open Group Architecture Framework&#xff09; 特点&…

损坏SD数据恢复的8种有效方法

SD卡被用于许多不同的产品来存储重要数据&#xff0c;如图片和重要的商业文件。如果您的SD卡坏了&#xff0c;您需要SD数据恢复来获取您的信息。通过从损坏的SD卡中取回数据&#xff0c;您可以确保重要文件不会永远丢失&#xff0c;这对于工作或个人原因是非常重要的。 有许多…

【Qt笔记】QTableWidget控件详解

目录 引言 一、QTableWidget的特点 二、QTableWidget基础 2.1 引入QTableWidget 2.2 基本属性 三、代码示例&#xff1a;初始化QTableWidget 四、编辑功能 4.1 设置单元格为只读 4.2 响应内容更改 五、选择模式 六、样式定制 七、与其他控件的交互 7.1 在单元格…

[SUCTF 2018]annonymous1

知识点&#xff1a; 匿名函数创建其实有自己的名字&#xff08;%00lambda_%d&#xff09; 进入页面开始代码审计. <?php // 使用 create_function 创建一个匿名函数&#xff0c;该函数调用 die() 函数并执行 cat flag.php 命令&#xff08;在服务器上执行&#xff0c;如果…

破解资源利用困境!麒麟信安支撑吉林市中医院完成云化转型

吉林市中医院在数字化转型的过程中&#xff0c;面临着一系列挑战。此前&#xff0c;该医院采用传统数据中心物理服务器部署模式&#xff0c;虽然在初期为医院的信息化建设提供了基础&#xff0c;但随着时间的推移&#xff0c;其局限性逐渐显现。每个应用系统都占用了大量的新旧…

如何在 DigitalOcean Droplet 云服务器上部署 Next.js 应用

Next.js 是一个流行的 React 框架&#xff0c;可轻松构建服务器渲染的 React 应用程序。在本教程中&#xff0c;我们将介绍如何使用 Nginx 作为反向代理&#xff0c;在 DigitalOcean 的 droplet 云主机上部署 Next.js 应用程序。以下是逐步指南&#xff0c;假设你已经准备好部署…

基于SpringBoot+Vue+MySQL的牙科医就诊管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。这样的…

HTML/CSS/JS学习笔记 Day2(HTML--网页标签 上)

跟着该视频学习&#xff0c;记录笔记&#xff1a;【黑马程序员pink老师前端入门教程&#xff0c;零基础必看的h5(html5)css3移动端前端视频教程】https://www.bilibili.com/video/BV14J4114768?p12&vd_source04ee94ad3f2168d7d5252c857a2bf358 Day2 内容梳理&#xff1a;…

儿童孤独症康复学校:打破孤岛,关爱与成长

在世界的某个角落&#xff0c;有一群孩子&#xff0c;他们如同夜空中最亮的星&#xff0c;却往往因孤独症的屏障&#xff0c;而难以与周围的世界建立连接。这些孩子&#xff0c;如同被无形的岛屿环绕&#xff0c;渴望着被理解、被接纳。而正是在这样的背景下&#xff0c;星贝育…

[C++11#48][智能指针] RAII原则 | 智能指针的类型 | 模拟实现 | shared_ptr | 解决循环引用

目录 一.引入 1. 为什么需要智能指针&#xff1f; 2. 什么是内存泄漏&#xff1f; 内存泄漏分类 3.回忆 this 二. 原理 1. RAII 资源获取即初始化 2.像指针一样 三. 使用 1. 问题&#xff1a; string 的浅拷贝 2.解决 auto_ptr 自定义 auto_ptr unique_ptr - 独占…

原生 iOS 引入 Flutter 报错 kernel_blob.bin 找不到

情况 在一次原生 iOS 项目中引入 Flutter 的过程中&#xff0c;在模拟器中运行出现报错&#xff1a; 未能打开文件“kernel_blob.bin”&#xff0c;因为它不存在。 如下图&#xff1a; 模拟器中一片黑 原因&解决方案 这个是因为 Flutter 的打包 iOS framework 命令中…

ES之三:springboot集成ES

一.选择版本很重要&#xff0c;不然会找不到好多方法 明明有Timeout方法&#xff0c;不报红&#xff0c;运行时&#xff0c;报错&#xff0c;找不到该类 ClassNotFoundException 为了避免使用的Elasticsearch版本和SpringBoot采用的版本不一致导致的问题&#xff0c;尽量使用…

统计学习方法与实战——统计学习方法概论

统计学习方法概论 文章目录 统计学习方法概论前言章节目录导读 实现统计学习方法的步骤统计学习方法三要素模型模型是什么? 策略损失函数与风险函数常用损失函数ERM与SRM 算法 模型评估与模型选择过拟合与模型选择 正则化与交叉验证泛化能力生成模型与判别模型生成方法判别方法…

高校大模型实验室大模型应用平台

大模型应用平台是一款专为高校大模型应用场景教学和科研打造的知识库问答系统。该平台易于使用&#xff0c;知识库支持常见的txt、doc、pdf、md等数据文件上传&#xff0c;同时提供了简洁易懂的操作配置界面&#xff0c;使用户可以轻松地搭建和训练AI应用&#xff0c;并快速进行…

arm64高速缓存基础知识

高速缓存的替换策略 随机法&#xff1a;随机地确定替换的高速缓存行&#xff0c;由一个随机数产生器产生随机数来确认替换行 FIFO法&#xff1a;选择最先调入的高速缓存行进行替换 LRU法&#xff1a;最少使用的行优先替换。 高速缓存的共享属性 内部共享的高速缓存通常指的…

时间序列处理方法

对于时间序列数据进行多分类任务&#xff0c;RNN对于顺序建模不理想&#xff0c;可以考虑以下模型和改进方法&#xff1a; Transformers&#xff08;时序数据版&#xff09; 优势: 相较于RNN&#xff08;如GRU、LSTM&#xff09;&#xff0c;Transformers 擅长捕捉长距离依赖关…