printf函数详解

一、 printf函数

printf是一个库函数,它来自标准库stdio.h 头文件中,它的使用方法有很多种,其作用是向标准输出设备(一般指计算机屏幕)输出信息,print字面意思就是打印,f则是format,名为格式,合起来便是格式化打印,如下所示。

1.1 直接打印

#include<stdio.h>
int main()
{
  printf("hello world");
  printf("hello c");
  printf("11,12,13,14");
  printf("3.4,1.2,45.3");
  printf("a,b,c");
  return 0;
}

这种写法比较死板

1.2 随时换行

我们知道printf函数打印完之后光标会停留在本行,不会自动跳转到下一行可以使用字符\n进行换行,如下所示。

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

1.3 使用占位符进行打印

#include<stdio.h>
int main()
{
	printf("%d\n", 4);
	printf("%c", 'a');
	printf("%f\n", 3.14f); //3.14f是单精度浮点数,默认是双精度浮点数。
	printf("%lf\n", 2.6);  //双精度浮点数
	printf("%s", "hello world\n");
	printf("%zd %u\n", 5, 10); //打印无符号整型

	//也可以打印变量
	int a = 4;
	int b = 5;
	float c = 3.14f;
	double d = 2.4;
	char e = 'a';
	printf("%d\n", a);
	printf("%d,%d\n", a,b);
	printf("%f\n", c);
	printf("%lf\n", d);
	printf("%f,%lf\n", c, d);
	printf("%d\n", e); //字符型也可以使用%d打印,结果是该字符的ASCll码值。
	printf("%c\n", e);

	return 0;
}

1.4限定宽度

printf函数可以限定占位符的最小宽度

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

结果显示

在这里插入图片描述

上面的实例中,3d和5d分别表示最小宽度至少是3位和5位,如果不足,默认在数字前面补空格,差几位补几位,默认输出的值是右对齐,如果希望左对齐,在数值后面补空格,在%后面加一个-号就可以了,如下所示。

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

结果显示

在这里插入图片描述
对于小数而言也可以限制最小宽度,如下所示。

#include<stdio.h>
int main()
{
	double d = 5.25;
	printf("%12lf\n", d); //输出"    5.250000"  限制最小宽度为12位,小数点后默认保留6位,.和5为两位,再补4位空格,总共12位。
	return 0;
}

结果显示

在这里插入图片描述

1.5 限制小数位数

单精度浮点型和双精度浮点型默认小数点后保留6位,可以使用占位符来限制小数的位数,如下所示。

#include<stdio.h>
int main()
{
	float f = 3.14f;
	double d = 2.5;
	printf("%f\n",f);     //输出"3.140000"
	printf("%.2f\n", f);  //输出"3.14"
	printf("%lf\n", d);   //输出"2.500000"
	printf("%.2lf\n", d); //输出"2.50"
	return 0;
}

结果显示

在这里插入图片描述

1.6 默认显示+和 -

默认情况下,printf函数只显示-号,而不显示+号,想要显示+号,可以在%后面加一个+号,如下所示。

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

结果显示

在这里插入图片描述
最小宽度和小数位数都可以通过*号来代替,在printf函数内传入参数,如下所示。

#include<stdio.h>
int main()
{
	double d = 5.2;
	printf("%*.*lf\n", 6, 2, d);
	return 0;
}

结果显示

在这里插入图片描述

1.7 输出部分字符串

%s是用来输出字符串,默认是输出全部字符串,如果想要输出开头的部分,可以使用%.*s来指定输出的长度,*代表一个数字,表述要输出的长度,如下所示。

#include<stdio.h>
int main()
{
	printf("%s", "hello world\n");
	printf("%.*s\n",5, "hello,world");
	return 0;
}

结果显示

在这里插入图片描述

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值