C语言之printf详解

目录

1.1 基本用法

1.2 占位符

1.3 占位符列举

1.4 输出格式

1.1.4.1 限定宽度

1.1.4.2 总是显示正负号

1.1.4.3 限定小数位数

1.1.4.4 输出部分字符串


1.1 基本用法

printf()的作用是将参数文本输出到屏幕。它名字里面的f代表format(格式化),表示可以定制输出文本的格式。

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

上面命令会在屏幕上输出一行文字“Hello World”。

为了让光标移到下一行的开头,可以在输出文本的结尾,添加一个换行符\n

printf("Hello World\n");

如果文本内部有换行,也是通过插入换行符来实现。如下方代码:

printf("Hello\nWorld\n");

 printf()是在标准库的头文件stdio.h定义的。使用这个函数之前,必须在源码文件头部引入这个头文件。

1.2 占位符

printf()可以在输出文本中指定占位符。

所谓"占位符",就是在这个位置可以用其他值代入

#include<stdio.h>
int main()
{
	printf("There are %d apples\n",3);
	return 0;
}

 上面示例中,There are %d apples\n是输出文本,里面的%d就是占位符,表示这个位置要用其他值来替换。占位符的第一个字符一律为百分号%,第二个字符表示占位符的类型,%d表示这里代入的值必须是一个整数。

printf()的第二个参数就是替换占位符的位置,上面的例子是整数3替换%d。执行后的输出结果是There are 3 apples。

输出文本里面可以使用多个占位符。

#include<stdio.h>
int main()
{
	printf("%s says it is %d o'clock\n","Lisi",21);
	return 0;
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 执行后的输出结果是Lisi says it is 21 o'clock。

1.3 占位符列举

%c:字符

%d:十进制整数

%f:小数(包含float类型和double类型)

%hd:十进制short int类型

%Lf:long double类型浮点数

%p:指针

%s:字符串

%u:无符号整数(unsigned int)

%x:十六进制整数

%zd:size_t类型

%%:输出一个百分号

1.4 输出格式

 1.1.4.1 限定宽度

 printf()允许限定占位符的最小宽度

#include<stdio.h>
int main()
{
	printf("%5d\n",123);//输出为“  123”
	return 0;
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 上面示例中,%5d表示这个占位符的宽度至少是5位。如果不满5位,对应的值的前面会填加空格。输出的值默认是右对齐,即输出内容前面会有空格;如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的%的后面插入一个 - 号

#include<stdio.h>
int main()
{
	printf("%-5d\n",123);//输出为“123  ”
	return 0;
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 对于小数,这个限定符会限制所有数字的最小显示宽度。

//输出“  123.450000”
#include<stdio.h>
int main()
{
	printf("%12f\n",123.45);
	return 0;
}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 上面示例中,%12f表示输出的浮点数最少要占据12位。由于小数的默认显示精度是小数点后6位,所以123.45输出结果的头部会添加2个空格。

1.1.4.2 总是显示正负号

默认情况下,printf()不对正数显示 + 号,只对负数显示 - 号。如果想让正数也输出 + 号,可以在占位符的%号后边加一个 +

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

上面示例中,%+d可以确保输出的数值,总是带有正负号。

1.1.4.3 限定小数位数

输出小数时,有时希望限定小数的位数。举例来说,希望小数点后面只保留两位,占位符可以写成%.2f。

printf("Number is %.2f\n", 0.5);//输出0.50

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

printf("%*.*f\n", 6, 2, 0.5);//输出  0.50

1.1.4.4 输出部分字符串

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

printf("%.5s\n", "hello world");//输出hello

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值