经过为期两周的时间,通过学习对printf有了摸底式的了解,接下来就给大家详细讲一讲这个库函数的使用方法。
目录
- printf简介
1.1.printf的参数
1.2.printf的占位符
1.3.printf美观使用
1.4.printf的限定宽度
1.printf简介
在介绍printf之前,我们思考一下,在编程的时候,我们是把问题描述给计算机听,并相应的命令计算机进行相关运算,那么我们应该怎么描述?应该是使用计算机语言进行描述的对吧,在描述给与计算机并下达指令了之后,计算机进行相应的运算,是不是需要将运算结果出现在我们的电脑之上?这个时候我们就需要用到printf。
printf的意义就在于把运算结束产生的参数文本打印到屏幕,可以理解为输出,将结果输出到屏幕之上呈现于人民的视线之内。
printf的f代表format即格式化,print为打印,表示为定制输出文本的格式。
&ensp:既然printf归属于库函数,那是不是应该需要有头文件才能正常使用printf呢?这里就不卖关子了,直接告诉大家吧,printf的头文件是stdio.h
#include<stdio.h>
int main()
{
printf("hello world");//printf==输出,hello world是字符串需要使用双引号括起来
return 0;
}
未使用头函数的结果就是系统会报错,大家一定要记得使用头文件,可以记忆错误系统所产生的信息,以便以后看到报错信息能够及时反应错误的地方。
1.1printf的参数
printf()一般有两种参数
例:printf(“%d”,a)。
第一个参数是用于指定输出格式,都是以占位符加相应格式为主。所谓占位符就是指该位置可以使用其他值进行替代
第二个参数是用于替代占位符的值,两个参数之间使用逗号隔开。
int main()
{
printf("一周有%d天",7);
return 0;
}
1.2printf的占位符
占位符的第一个字符一律都是百分号%,第二个字符指定占位符的类型,在printf里可以使用多个占位符,这也就意味着可以同时输出多个结果。
常用的占位符有:
%c //字符
%d //十进制整数,与//int相呼应
%f //浮点型数值,包含float类型和double类型
//flout类型对应使用%f
//double类型对应所以%lf
%Lf //long double类型
%p //指针,用于打印地址(暂时不做了解,按下不表)
%s //字符串
%u //无符号整型
%x //十六进制整型
%zd //size_t类型
%% //输出百分号
printf的参数于占位符是一一对应的关系,如果有n个占位符,那对应的参数就有(n+1)个,如果参数个数少于对应的占位符,printf可能会输出内存中的任意数值
1.3printf美观使用
同时使用两个库函数print时,第一个printf运行结束之后光标停留在输出结束的地方,当第二个printf运行结束之后直接在光标停留处打印结果,这样就会导致最终输出不美观。
为了让光标移动到下一行的开头,可以在输出文本的结尾加上\n,\n名为换行符,效果如其名。
如果想要在内部换行,也可以通过在内部加上\n换行符解决.
1.4printf的限定宽度
方法1
使用%f的时候大家是不是都发现了最终打印出来的结果小数点后面都有6位数,即便没有6位数也会用0补足6位数。
不知道大家有没有强迫症啊,我看着感觉好不舒服啊,那有没有办法限制宽度呢,肯定是有的,接下来我给大家介绍一下这个方法:
在printf中是允许限定占位符的最小宽度的,在占位符的标志%后面加上.[m]就可以限制宽度了,[m]等于一个实际值。
当实际小数位数大于我们限定位数的话,系统会自动进行四舍五入计算。
同时该方式还可以指定字符串的输出长度,简单来说就是可以指定只输出字符串开头的一部分。
int main()
{
printf("%s\n","abcdef"); //zbcdef
printf("%.3s\n","abcdef"); //abc
printf("%3s\n","abcdef"); //abcdef
return 0;
}
方法2
还有另外一种限定宽度,上方这种方法是限定小数位数的,接下来这种方法是限定整体宽度的,包括小数点也算是一位,这种方法和上方的限定小数的方法很相似,但大家一定要要好好区分,在百分号%后加上限定宽度大小的数值就可以了。
使用这种方法,当出现实际数值的位数小于限定宽度的数值时,系统会自动在输出文本的前面加上空格直到补足限定宽度。
默认情况下,printf输出的文本均是右对齐,即输出的内容前面会有空格补齐,但如果希望改为左对齐,在输出的文本后面添加空格,可以在%的后面插入一个“-”号。
int main()
{
printf("%dyy\n", 123); //123yy
printf("%-5dyy\n", 123); //123 yy
printf("%5dyy\n", 123); // 123yy
return 0;
}
还有就是我们以后编程有可能需要printf输出的值带有一个“+”号,虽然我觉得用处很小哈哈,也有可能是现在学习的还不是很深入,看待这个有点目光短浅吧哈哈哈。
回归正题,在默认情况下,printf只会显示“-”号,但我们在占位符%后面加一个“+”号就可以正常输出我们想要的结果了,并不会影响到数值的实际正负哈。
int main()
{
printf("%d\n",1); //1
printf("%d\n",-1); //-1
printf("%d\n",+1); //14
printf("%+d\n",-1); //-1
printf("%+d\n",1); //+1
return 0;
}
但是大家要区分好哈,%后面加“-”和加“+”用法是不一样的。
1.加“-”是改变输出文本的默认方向
2.加“+”是给输出文本加上“+”号
二者有本质区别
2.0结尾
printf是C语言编程中非常重要的库函数之一,下一期给大家介绍scanf,这个库函数也是非常重要的,我们先按下不表,下一期见!