printf函数讲解,转义字符与占位符 目录 前言 一、printf函数 1. 测试printf函数中的 二、占位符 1. %d整型占位符 2. %f浮点型占位符 3. %c字符型占位符 4. %s字符串型占位符 5. 常用的占位符 三、printf输出格式 1. 限定宽度 2. 总是显示正负号 3. 限定小数位数 4. 输出部分字符串 四、 转义字符 结语 前言 前面在编译器的选择与Hello World的输出这篇文章里简单介绍了printf函数的知识,这篇文章将详细介绍printf函数的使用,以及它的输出格式。本章内容较多,可以通过目录跳转到相关部分。 一、printf函数 printf是一个库函数,使用它时需要包含stdio.h这个头文件,printf函数的作用是将参数文本输出到屏幕。它名字里面的 f 代表format(格式化)表示可以定制输出文本的格式。它的第一个参数是一个格式控制字符串,用于指定输出的格式。 1. 测试printf函数中的 printf函数可以输出多种类型的数据,如整数、小数、字符、字符串等。在格式控制字符串中,可以使用一些转义字符来表示特殊的输出格式,如 表示换行, 表示制表符等。通过printf函数,我们可以在程序中输出各种信息,便于调试和查看程序的执行结果。
上图中的程序会在屏幕上输出一行文字“Hello World”。并且printf函数运行结束后,光标会停留在输出结束的地方,不会自动换行(本次使用了调试模式)。
那么为了让光标移动到下一行的开头,我们可以在输出文本的末尾,添加一个换行符
下图为执行结果,可以看出,光标移动到了下一行的开头。
如果文本内部有换行,也是通过插入换行符来实现,代码如下:
可以看出,上下两段代码虽然调用printf函数次数不同,但是执行效果是相同的。
二、占位符 printf() 可以在输出文本中指定占位符。 C语言中的占位符是一种特殊类型的字符,用于指定在格式化输出中要替换的值的类型和格式,可以理解为占位符的位置可以用其他值代入。 下面演示几种常见的占位符使用方法,包括整型(整数)、浮点型(小数)、字符型和字符串型。 1. %d整型占位符
上面示例中, I’m %d years old 是输出文本,里面的 %d 就是占位符,表示这个位置要用其他值来替换。占位符的第一个字符一律为百分号 % ,第二个字符表示占位符的类型,%d 表示这里代入的值必须是一个整数。 printf() 的第二个参数就是替换占位符的值,上面的例子是整数 19 替换 %d 。执行后的输出结果就是 I’m 19 years old。
2. %f浮点型占位符 %f表示代入的是一个浮点型参数,也就是小数,如下图:在C语言中小数的默认显示精度是小数点后6位,超出部分会进行四舍五入的计算。
3. %c字符型占位符 %c表示代入的是一个字符型参数,字符是计算机科学中最基本的信息单位,是对字母、数字、符号等可打印或显示的文本素的抽象概念。在计算机,每个字符都使用特定的编码方式来表示,这种特定的编码叫做ASCII编码,我们后面会详细讲解。
与字符串的双引号不同,字符是用英文输入法的单引号引起来的,并且单引号中只有一个字符。不过输出字符a的方法并不止这一种,上图中的‘a’替换成十进制数字97输出效果也是一样的,因为它在ASCII编码中表示字符a。
4. %s字符串型占位符 %s 表示代入的是一个字符串型参数,使用双引号括起来的一串字符就被称为字符串,C语言字符串中一个特殊的知识,就是在字符串的末尾隐藏放着一个 0 字符,这个 0 字符是字符串的结束标志。
上面示例中, %s 表示代入的是一个字符串,所以 printf() 的第二个参数就必须是字符串,这个例 子是 Happy 。执行后的输出就是 Happy new year 。
当然,输出文本里面还可以使用多个占位符。
上面示例中,输出文本 %s says it’s %d o’clock 有两个占位符,第⼀个是字符串占位符 %s ,第二个是整数占位符 %d ,分别对应 printf() 的第二个参数(Zhang San)和第三个参数 ( 7 )。执行后的输出就是 Zhang San says it‘s 7 o’clock 。
printf() 参数与占位符是一一对应关系,如果有 n 个占位符, printf() 的参数就应该有 n + 1 个,这里多出来的1是格式字符串本身。如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值。 5. 常用的占位符 printf() 的占位符有许多种类,与C语言的数据类型相对应。更多的占位符就不一一介绍了,下面列出常用的占位符,大家可以查找自己需要的。
三、printf输出格式 printf函数可以定制占位符的输出格式。 1. 限定宽度 printf() 允许限定占位符的最小宽度。
上面示例中, %8d 表示这个占位符的宽度至少为8位。如果不满8位,对应的值的前面会添加空格。 输出的值默认是右对齐,即输出内容前面会有空格。
如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的 % 的后面插入一个 – 号。
参考下面的图,输出内容 888 的后面添加了5个空格。
除了整数以外,我们还可以给小数限制宽度,对于小数,这个限定符会限制所有数字的最小显示宽度。如下图所示:
上面示例中, %15f 表示输出的小数最少要占据15位。由于小数的默认显示精度是小数点后6位, 所以 65.368 输出结果的头部会添加6个空格。
2. 总是显示正负号 默认情况下, printf() 不对正数显示 + 号,只对负数显示 – 号。如果想让正数也输出 + 号,可以在占位符的 % 后面加⼀个 + 。
上面示例中, %+d 可以确保输出的数值,总是带有正负号。
3. 限定小数位数 输出小数时,有时希望限定小数的位数。举例来说,希望小数点后面只保留两位,占位符可以写 成 %.2f ,如果原本的小数点后面不止两位,那么后面的数进行四舍五入后保留两位。
上面示例中,如果希望小数点后面输出3位( 2.555 ),占位符就要写成 %.3f 。 这种写法可以与限定宽度占位符,结合使用。
上面示例中, %6.2f 表示输出字符串最小宽度为6,小数位数为2。所以,输出字符串的头部有两个空格。
最小宽度和小数位数这两个限定值,都可以用 * 代替,通过 printf() 的参数传入。
上面示例中, %*.*f 的两个星号通过 printf() 的两个参数 6 和 2 传入。
4. 输出部分字符串 %s 占位符用来输出字符串,默认是全部输出。如果只想输出开头的部分,可以用 %.[m]s 指定输出的长度,其中 [m] 代表⼀个数字,表示所要输出的长度。
上面示例中,占位符 %.4s 表示只输出字符串“Heroine”的前4个字符,即“Hero”。
四、 转义字符 转义字符是一种特殊的字符,用于改变字符或字符串的原始含义。在大多数编程语言中,转义字符以反斜杠()开始,后面跟着一个或多个字符。
部分转义字符的使用:
像ddd和xdd这样的八进制或十六进制数为什么可以表示某个字符呢?前面提到过,在计算机,每个字符都使用特定的编码方式来表示,这种特定的编码叫做ASCII编码,其实我们输出的就是八进制以及十六进制数字对应的ASCII编码值,我们后面会详细讲解的。 这些转义字符大家可以自己组合和测试效果。关于转义字符我们首先要了解,然后要能在字符串中识别出来。 结语 printf函数是一个非常重要的函数,printf函数的重要性体现在以下几个方面: 1.输出结果:printf函数能够将程序中的计算结果、中间过程或者用户输入的数据等输出到屏幕上,方便程序员和用户查看和验证程序的正确性。 2.调试程序:在程序开发阶段,printf函数是调试程序的重要工具之一。通过在程序的关键位置插入printf语句,可以输出变量的值、程序的执行状态等信息,帮助程序员了解程序运行过程中的错误和问题。 3.用户交互:printf函数可以用来向用户显示信息,提示用户输入数据,并根据用户的输入做出相应的处理。这在很多交互式程序中是非常重要的功能。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/28105.html