printf详解

printf("hello \nworld\n"):将hello word打印到屏幕上,在使用printf函数时可以多次使用换行符\n,想在哪里加都可以 

int main()
{
	printf("hello \nworld\n");
	return 0;
}

占位符:在printf中,占位符可以被指定的数值替换 

int main()
{
	printf("there are 3 apples\n"); //1
	printf("there are %d apples\n", 3); //2
	printf("there are %d apples\n", 6); //3
	printf("%s will come to tonight\n", "李四"); //4
	printf("%s says it is %d O'clock\n", "lisi", 21); //5
	return 0;
}

1和2、3的区别是1这一代码的数字3是不能改变的,而且2/3语句中因为使用了占位符%d,所以是可以改变相应数字的,只需要将后面的数字更改为定义的变量就可以
4这句代码中,%s代表字符占位符,可以输入相应的字符,注意字符要用双引号
5这句代码中混合使用了字符占位符和整型占位符,可以输入相应的内容,注意后面输入的内容的顺序和前面的占位符的顺序要相同

常用的占位符

%s

字符串类型
%d十进制整数
%f float和double
%c字符类型
%o八进制整数
%x十六进制整数
%b 二进制类型
%uunsigned int
%p 指针类型
%lldlong long(是两个小写L,不是1哦)

 限定宽度

int main()
{
	printf("%5d\n", 123);
	printf("%-5d\n", 123);
	printf("%12f\n", 123.45);
	printf("%12f\n", 123.45);
	return 0;
}

printf("%5d\n", 123);printf("%-5d\n", 123):以十进制的方式打印,让输出的值有5位宽,但现在只有3位宽,那么就默认在前面加2个空格以达到最小5位,那么在将5变为-5意思是将空格补到右边如结果图所示
printf("%12f\n", 123.45):用十进制的方式打印,限定12位宽,现在有6位宽了(小数点也算一位)又因为小数默认有6位,所以系统会在前面加上2位空格已达到最小12位宽

 

%2d,%-2d,%.2d,%02d

int main()
{
	int a = 1;
	printf("%d\n",a);
	printf("%2d\n",a);
	printf("%.2d\n", a);
	printf("%-2d\n",a);
	printf("%02d\n",a);
	return 0;
}

2表示至少输出的宽度当大于输出宽度时,数据按原数据输出当小于输出宽度2时,默认前补空格。如果有-号表示后补空格,.2d与02d相同,都表示不足宽度2时前补0。

printf("%s, %5.3s\n", "COMPUTER", "COMPUTER");

printf("%2d\n", 1234);

输出为1234 

其他的一些例子

限定小数位 

限定小数位:因为小数默认显示6位,但我们是可以进行限定小数后面的位数的

int main()
{
	printf("%f\n", 123.45);
	printf("%.2f\n",123.45);
	printf("%6.2f\n", 0.5);
	printf("%*.*f\n",6,2,0.5);
	return 0;
}

printf("%.2f\n",123.45):以浮点数的形式打印123.45,在%和f中间加上一个 . 就是表示限定小数后面的位数了,想要几位就在 .后面输入数字就行,比如现在是.2表示显示2位小数
printf("%6.2f\n", 0.5):以浮点数的形式打印0.5,那么6.2中的6表示总共6位宽,小数点后有2位
printf("%*.*f\n",6,2,0.5):以浮点数的形式打印0.5,,*.*表示总位宽和小数位宽由后面输入的值确定,也就是后面的6和2

 

输出部分字符串

%s占位符用来输出字符串,默认是全部输出。如果如果只想输出开头的部分,可以用%.[n]s指定输出的长度,其中[n]代表⼀个数字,表示所要输出位宽

int main()
{
	printf("%.5s\n", "hello world");
	return 0;
}

以字符串的形式打印hello world,.5表示只要5位宽,故最终结果就只有 hello

参考C语言中printf打印形式(%02X, %2X, %-2X, %.nf, %m.nf, %e, %m.ne, %2d, %-2d, %02d, %.2d)_printf %.2x-CSDN博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值