printf 介绍

一.printf
1.基本用法
printf 为一个库函数,使用前需先包含头文件 #include<stdio.h>
它的作用是将参数文本输出到屏幕,如

#include<stdio.h>
int main()
{
	printf("Hello world.");
	return 0;
}

运行之后将会在屏幕上输出Hello world.
运行结果名字里的f表示format(格式化),可以定制输出文本的格式。
printf函数中打印完不会自动换行,需要在末尾加上\n。

#include<stdio.h>
int main()
{
	printf("Hello world.\n");
	return 0;
}

2.占位符
printf函数中可以使用占位符,占位符的意思就是这个符号的位置可以用其他值代入。

#include<stdio.h>
int main()
{
	printf("桌子上有%d本书\n",3);
	return 0;
}

这里的%d就是占位符,表示这个位置用其他值来替换。占位符的第一个字符为%,第二个字符表示占位符的类型。比如这里的%d代表代入的值要是一个整数。
占位符也可以输入多个,但要和代入的值(即参数)一一对应。

#include<stdio.h>
int main()
{
	printf("房间里有%d张桌子,%d把椅子\n",3,4);
	return 0;
}

输出结果为 房间里有3张桌子,4把椅子

占位符要和参数一一对应,如果参数个数少于对应的占位符,printf可能会输出内存中的任意值。

双引号""和它里面的东西也算一个参数,因此如果有n个占位符,参数应该有n+1个。

3.占位符举例
• %a :⼗六进制浮点数,字⺟输出为⼩写。
• %A :⼗六进制浮点数,字⺟输出为⼤写。
• %c :字符。
• %d :⼗进制整数。
• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
• %i :整数,基本等同于 %d 。
• %f :⼩数(包含 float 类型和 double 类型)。
• %g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e为⼩写。
• %G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
• %hd :⼗进制shortint类型。
• %ho :⼋进制shortint类型。
• %hx :⼗六进制shortint类型。
• %hu :unsignedshortint类型。
• %ld :⼗进制longint类型。
• %lo :⼋进制longint类型。
• %lx :⼗六进制longint类型。
• %lu :unsignedlongint类型。
• %lld :⼗进制longlongint类型。
• %llo :⼋进制longlongint类型。
• %llx :⼗六进制longlongint类型。
• %llu :unsignedlonglongint类型。
• %Le :科学计数法表⽰的longdouble类型浮点数。
• %Lf :longdouble类型浮点数。
• %n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。
• %o :⼋进制整数。
• %p :指针。
• %s :字符串。
• %u :⽆符号整数(unsignedint)。
• %x :⼗六进制整数。
• %zd : size_t 类型。
• %% :输出⼀个百分号。

这个表也不是要背的,我们了解一下,记住常用的几个%d,%f,%s等,其他的有的用不大到,用到的用多了自然就记住了。

4.输出格式
(1)限定宽度
printf可以限定占位符的最小宽度,方法是在%后面加一个数字,如%3d。

#include<stdio.h>
int main()
{
	printf("%3d\n",4);//输出  4
	return 0;
}

%3d限制的是最小宽度,这里参数只有1个4,占一位,不够的用空格补齐。如果参数宽度大于限定最小宽度,则正常输出。输出的值默认的是右对齐,如果要左对齐,则需要在数字前边加负号,如%-3d。

(2)正负号的显示
printf中,输出正数并不会显示+号,输出负数会显示-号,如果想让输出的正数带+号,则需要在%后面加一个+号。

#include<stdio.h>
int main()
{
	printf("%+d\n",4);//输出+4
	printf("%d", -4);//输出-4
	return 0;
}

%+d可以保证输出的值总带有正负号。

(3)限定小数位数
如果我们有限定小数位数的需求的时候,需要在%后面加上.和一个数字,这个数字就是你希望限定的小数位数(会四舍五入)。

#include<stdio.h>
int main()
{
	printf("%.3f\n",6.6666);//输出6.667
	return 0;
}

这种写法可以和限定宽度占位符一起使用

#include<stdio.h>
int main()
{
	printf("%7.3f\n",6.6666);//输出  6.667
	return 0;
}

7表示最小宽度为7位,6.667占了5位,前边用两个空格补齐。

最小宽度和小数位数这两个限定值,都可以用*代替,用参数传入。

#include<stdio.h>
int main()
{
	printf("%*.*f\n",7,3,6.6666);//输出  6.667
	return 0;
}

(4)输出部分字符串
printf可以限定小数位数,也可以限定输出的字符串的位数方法和限制小数位数一样。

#include<stdio.h>
int main()
{
	printf("%.4s","hello");//输出hell
	return 0;
}

数字4表示限定4位,只会输出hell。

以上就是对printf函数的介绍,欢迎大家交流和指正。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值