【C语言】占位符集合

server/2024/10/18 1:20:01/

字面意义,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号,广泛用于计算机中各类文档的编辑。
格式占位符(%)是在C/C++语言中格式输入函数,如 scanf、printf 等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。

占位符是 C语言中非常有用的一种工具,可以通过指定不同的占位符来格式化输出不同类型的数据。我们可以使用常见的占位符来输出整数、浮点数、字符、字符串、指针等类型的数据,也可以使用修饰符来控制输出的格式,例如左对齐、填充 0、控制小数位数、控制输出宽度等。熟练掌握占位符和修饰符的使用,对于编写高效、清晰的代码非常重要。

以下这些都是 10 进制数整型:%d/%D   ----    以 int 类型的方式显示数据 %hd     ----    以 short 类型的方式显示数据 %hhd    ----    以 signed char 整形类型的方式显示数据%ld     ----    以 long 类型方式显示 %lld    ----    以 long long 类型方式显示 %u      ----    以 unsigned int 类型的方式显示数据 %hi     ----    为有符号的16位整型数(short);%hu     ----    以 unsigned short 类型的方式显示数据 %hhu    ----    以 unsigned char 整形类型的方式显示数据%qi     ----    为有符号的64位整型数(long long);%qu     ----    为无符号的64位整型数(unsigned long long);%lu     ----    以 unsigned long 类型方式显示 %llu    ----    以 unsigned long long 类型方式显示       浮点:%f      ----    以 float 方式显示  (保留6位小数)   12.500000%F      ----    为64位的浮点数(double)(保留6位小数)%lf     ----    以 double 方式显示 (保留6位小数)%.2f    ----    以float型进行打印 -> 保留2位小数%e/%E   ----    以 指数方式显示 -> 科学计数%g/%G   ----    以 合适的方式显示 -> 小数或科学计数%a,%A   ----    读入一个浮点值(仅C99有效)字符: %c/%C   ----    以char型进行打印 ---> 针对字符型 %s/%S   ----    以char型进程打印 ---> 针对字符串详细描述:%c      ----    为8位的无符号字符%c(unsigned char),通过打印NSLog()将其作为一个ASCII字符,或者,不是一个ASCII字符,八进制格式\ddd或统一标准的字符编码的十六进制格式\udddd,在这里d是一个数字;%C      ----    为16位Unicode字符%C(unichar),通过打印NSLog()将其作为一个ASCII字符,或者,不是一个ASCII字符,八进制格式\ddd或统一标准的字符编码的十六进制格式\\udddd,在这里d是一个数字;%s      ----    对于无符号字符数组空终止,%s系统中解释其输入编码,而不是别的,如utf-8;%S      ----    空终止一系列的16位Unicode字符;例子:printf("%d %d %d %f %c\n",a,b,c,d,e,f);//format中拥有多个标志位:需给予同等的变参个数,且数据类型要匹配。以下是八进制和十六进制 %i      ----    读入十进制,八进制,十六进制整数%o,%O   ----    为32位的无符号整数(unsigned int),打印八进制数; %lo     ----    八进制 long int类型%llo    ----    八进制 long long int类型%lx     ----    十六进制 long int类型%llx    ----    十六进制 long long int型%llu    ----    unsigned long long int型%Le     ----    科学计数法表示的long double类型浮点%Lf     ----    long double类型浮点%x      ----    为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,小写a-f;%X      ----    为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,大写A-F;%x/%X   ----    以十六进制的格式进行打印 --->不带开头%#x     ----    以十六进制的格式进行打印  ---> 带开头%qx     ----    为无符号64位整数(unsigned long long),打印使用数字0-9的十六进制,小写a-f;%qX     ----    为无符号64位整数(unsigned long long),打印使用数字0-9的十六进制,大写A-F;%#o     ----    八进制显示 %#x/%#X ----    十六进制显示 %n      ----    已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量之中。%p      ----    打印地址 -> 读入一个指针 空指针(无效*),打印十六进制的数字0-9和小写a-f,前缀为0x%L      ----    在明确规定的长度下,进行修正,下面的一批数据a,A,e,E,f,F,g,G应用于双精度长整型的参数%[]     ----    扫描字符集合%%      ----    读 % 符号%z      ----    修改说明在%z长度以下d,i,o,u,x,X适用于某一指定类型的转换或者适用于一定尺寸的整数类型的参数;%zd     ----    size_t类型%t      ----    修改说明在%t长度以下d,i,o,u,x,X适用于某一指定类型或一定尺寸的整数类型的转换的参数;%j      ----    修改说明在%j长度以下d,i,o,u,x,X适用于某一指定类型或一定尺寸的整数类型的转换的参数%@      ----    对象 -> 关于这个后面有详解另外,printf 别样显示:%md     ----    m表示显示的宽度 m是个正数 ,右对齐 (数据在右边)m是个负数 ,左对齐 (数据左边)如果m的值小于 最小显示的宽度 ,则m无效 例子:int a = 10;printf("%5d\n", a);%m.nf    ----   m表示显示的宽度(小数点算一个位置)m是个正数 ,右对齐 (数据在右边)m是个负数 ,左对齐 (数据左边)如果m的值小于 最小显示的宽度 ,则m无效n 代表保留的 小数位数 尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,看了一下别人是怎么解决这个问题的BOOL studyBool = YES;NSLog(@"打印BOOL型数据%@",studyBool?@"YES":@"NO");//打印BOOL型数据YESNSLog(@"打印BOOL型数据%d",studyBool);//打印BOOL型数据1BOOL alsoBool = NO;NSLog(@"打印BOOL型数据%@",alsoBool?@"YES":@"NO");//打印BOOL型数据NONSLog(@"打印BOOL型数据%d",alsoBool);//打印BOOL型数据0%@    ----   Objective-C对象,印有字符串返回descriptionWithLocale:如果于的话,或描述相反.CFTypeRef工作对象,返回的结果的CFCopyDescription功能.(这个翻译有问题建议按照自己的理解方式理解)。

占位符的高级用法
			动态宽度和精度:可以使用*符号动态指定宽度和精度,这通常在函数中传递格式化参数时非常有用。int main() {int width = 10;double pi = 3.14159;printf("动态宽度:%*f\n", width, pi);return 0;}组合使用:占位符可以组合使用,以实现复杂的格式化输出。例如,可以同时指定宽度、精度和对齐方式。int main() {double pi = 3.14159;printf("宽度为10,精度为2,左对齐:%-10.2f\n", pi);return 0;}

占位符是C语言中非常重要的一个工具,它可以帮助我们实现格式化输出、字符串处理和文件输出。在使用占位符时,我们需要注意类型匹配、溢出和截断以及安全性问题。希望大家能够全面理解和掌握C语言中的占位符,并在实际编程中灵活运用这一工具。

以上,是关于【C语言】中占位符的介绍。

我是一个十分热爱技术的程序员,希望这篇文章能够对您有帮助,也希望认识更多热爱程序开发的小伙伴。
感谢!


http://www.ppmy.cn/server/132640.html

相关文章

JAVA学习-练习试用Java实现“自定义函数之字符反转”

问题: 写一函数,使输入的一个字符串按反序存放,在主函数中输入并输出反序后的字符串(不包含空格)。 示例 :输入一行字符123456abcdef,输出逆序后的字符串fedcba654321。 解答思路: …

PCL 点云配准-SAC-IA 初始配准算法(粗配准)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 计算FPFH特征函数 2.1.2执行SAC-IA配准 2.1.3可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总&…

基于深度学习的对抗攻击的防御

基于深度学习的对抗攻击防御是一项重要的研究方向,旨在提高模型在面对对抗样本时的鲁棒性和安全性。对抗攻击通常通过向输入数据中添加微小扰动,使得深度学习模型做出错误的预测。为了应对这些攻击,研究人员提出了多种防御策略。 1. 对抗训练…

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 文章目录 东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南一 TongWeb V7二 Spring Boot JAR 配置文件三 修改 maven 依赖四 docker compose 启动项目五 查看 docker 信息 本文详细讲解了如何在 Docker 环境中将东方…

Spring AI Java程序员的AI之Spring AI(一)

SpringAI 基础使用 前言Spring AIChatClientImageClientOpenAiAudioTranscriptionClientEmbeddingClient 总结 前言 Spring AI,听着名字就感觉很好使用,快速上手,虽然功能没有太完善,但是社区活跃度很高,可以看看源码…

kafka创建多个分区时,分区会自动分配到多个不同的broker

1.分区只有一个时所有的消息生产和消费都集中在单个Broker上,多个broker只是提高了抗风险能力(因为副本存在不同的broker上,主节点挂掉,可以重新选取副本为主节点)。 2.没有消息顺序性要求可以多个分区,注意…

LIN从节点:波特率测试

文章目录 1、为什么需要测?2、如何实现测试?3、测试结果4、注意事项 1、为什么需要测? 调节波特率的变化,使主节点同步场位速率变化,验证从节点能否通过同步段进行调节自身位速率。对应ISO17987协议。 2、如何实现测…

基于微信小程序的在线点歌系统(论文+源码)-kaic

摘 要 随着社会与互联网的发展,人们已经不在停留在温饱的层面上,而是开始了享受生活,而最能突出网络飞速发展的当属娱乐,从最初的网吧上网到现在的我们可以随时随地上网,观看自己喜欢的各式各样的电影电视剧和短视频&a…