【C语言学习】printf函数

一、定义与基本用法

printf函数英文名全称叫print format,即按照格式打印数据,它的基本用法是将参数文本输出到屏幕。

#include <stdio.h>

int main()
{
	printf("hello C");
	return ;
}

运行结果:
在这里插入图片描述
printf函数不会在结尾自动添加换行符(\n),运行结束后,光标就停留在输出结束位置,不会自动换行。如果文本需要换行,可以通过在结尾插入换行符来实现。
在这里插入图片描述
另外,printf是在标准库的头文件stdio.h定义的,因此,在使用之前,必须在源文件头部包含这个头文件,即#include <stdio.h>。

二、占位符

printf函数可以在输出文本中指定占位符,所谓“占位符”,就是这个位置可以用它后面的值代⼊,实现数据可变(后面值和前面占位符个数、类型一一对应)。占位符的第⼀个字符⼀律为%,第二个字符表示占位符的类型,例如:%d → 打印整形、%c → 打印字符、%f → 打印小数(float、double两种类型)、 %p → 打印指针… …

#include <stdio.h>

int main()
{
	printf("%s says it is %d o'clock\n", "lisi", 21);
	return 0;
}

运行结果:
在这里插入图片描述

三、输出格式

printf函数可以定制占位符的输出格式,主要包括以下几种。

3.1 限定宽度

这里的限定宽度是指最小宽度,如果占位符的宽度比限定宽度要小,对应的值的前⾯会添加空格;如果占位符的宽度比限定宽度大,则正常打印。输出的值默认是右对齐,可以在占位符的%的后面插入一个-号。

#include <stdio.h>

int main()
{
	printf("%d\n", 123);
	printf("%5d\n", 123);
	printf("%5d\n", 1234567);
	return 0;
}

运行结果:
在这里插入图片描述
在这里插入图片描述
对于浮点数也是一样,浮点数后面小数点默认6位

#include <stdio.h>

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

运行结果:
在这里插入图片描述

3.2 打印显示正负号

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

#include <stdio.h>

int main()
{
	printf("%d\n", 45);
	printf("%d\n", -45);
	printf("%+d\n", 45);
	return 0;
}

运行结果:
在这里插入图片描述

3.3 限定小数位数

输出小数(浮点数)时,默认情况下是小数点后6位,有时候我们希望小数点后面保留2位,占位符可以写成%.2f,一般的,可以写成%.[m]f,m为正整数,表示我们想保留的小数位数。

#include <stdio.h>

int main()
{
	printf("%f\n", 3.1415926);
	printf("%.3f\n", 3.1415926);
	return 0;
}

运行结果:
在这里插入图片描述
这种写法也可以与限定宽度占位符结合使用,最小宽度和小数位数这两个限定值,都可用*代替, 通过printf()参数传入。

#include <stdio.h>

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

运行结果:
在这里插入图片描述

3.4 输出部分字符串

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

#include <stdio.h>

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

运行结果:

好了,以上就是关于printf函数的介绍,除了printf外,我们还有scanf函数,后面也会对其进行讲解,感兴趣的小伙伴可以点点关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值