一篇文章带你了解全部常见C语言/C++格式化字符


写在前面

对于刚入门C语言/C++的新手小白来说,程序输出的格式化总是令人头疼,今天,错先生带你通过一篇文章了解全部常见的C语言/C++格式化字符。


一、整数类型格式化

1. 十进制整数 %d

	printf("我的身高是%d厘米", 180);

输出:我的身高是180cm

2. 八进制整数 %o

	int a = 180;
	printf("我的身高转换为八进制是%o厘米", a);

输出:我的身高转换为八进制是264厘米

3. 十六进制整数%x,%X

	int a = 180;
	printf("我的身高转换为十六进制是%x厘米", a);
	int a = 180;
	printf("我的身高转换为十六进制是%X厘米", a);

分别输出:
我的身高转换为十六进制是b4厘米
我的身高转换为十六进制是B4厘米

在了解了十进制、八进制以及十六进制的格式化字符转换后,uu们可能要问为什么没有二进制格式化字符转换了,实际上,在C语言中,没有对于二进制字符的格式化转换,原因是二进制字符一般输出形式将按照8个字节输出,而我们熟知的int类型数据仅占用4个字节。

二、浮点数类型格式化

1. 单精度浮点数float %f

float为单精度浮点数类型,精度较小于double类型,它的格式化主要包括保留小数位数、设置宽度以及左对齐、右对齐等。

	float a = 179.97;
	printf("我的身高是%f厘米\n", a);
	printf("我的身高是%.2f厘米\n", a);
	printf("我的身高是%-10.2f厘米", a);
我的身高是179.970001厘米
我的身高是179.97厘米
我的身高是179.97    厘米

当不指定保留的小数位数时,浮点数float类型将默认输出宽度为10的浮点数,上图第二种输出方法为指定输出保留2为小数的浮点数,第三种方法表示输出宽度为10、左对齐、保留两位小数的浮点数,如果没有数据输出,将以空格补齐。同时,当我们仅输入宽度、不输入负号时,将默认输出右对齐数据;相反,当我们不输入宽度时,将默认输出左对齐数据。

2. 双精度浮点数double %lf

double类型数据为双精度浮点型数据,能够较float型数据输出更为精确的浮点型数据。它的格式化为%lf。

	double a = 179.97;
	printf("我的身高是%lf厘米\n", a);
	printf("我的身高是%.2lf厘米\n", a);
	printf("我的身高是%-10.2lf厘米", a);
我的身高是179.970000厘米
我的身高是179.97厘米
我的身高是179.97    厘米

细心的小伙伴会注意到,double类型数据在不指定小数位数时的格式化输出与float类型数据的输出结果略有不同,实际上,这与double类型数据和float类型数据能够输出的精度有关,输出的具体结果还与内部定义的数据结构有关,感兴趣的小伙伴们可以深入学习一下哦!

3. 指数形式输出浮点数 %e,%E

	double a = 179.97;
	printf("我的身高是%e厘米\n", a);
	printf("我的身高是%E厘米\n", a);
	printf("我的身高是%.2e厘米", a);
我的身高是1.799700e+02厘米
我的身高是1.799700E+02厘米
我的身高是1.80e+02厘米

三、字符、字符串类型格式化

1. 字符(char)类型格式化 %c

	printf("我的身高是%c%c%c厘米\n", '1','8','0');
我的身高是180厘米

C语言中并没有定义字符串数据类型,因此,在进行字符串处理与输出时使用C语言只能采用字符型数组进行处理;C++标准库string中包含了字符串数据类型,便于我们更加轻松地处理并输出字符串

2. 字符串(string)类型格式化 %s

#include<cstdio>
#include<string>
using namespace std;

int main()
{

	printf("我的身高是%s厘米\n", "180");

	return 0;
}
我的身高是180厘米

注意在此处需要包含标准库string,否则无法使用%s进行字符串的格式化。

四、其它 eg:%p 输出指针

除此之外,C语言/C++还包含各种形式的格式化字符输出,如%p,将格式化输出指针的值。

	int p = 180;
	int* ptr = &p;
	printf("我的身高存放在%p\n", ptr);
我的身高存放在000000D8CBEFFB54

总结

在未来学习C语言/C++或是其它编程语言的道路上,正确输出所需结果是很关键的一步,尤其是在算法竞赛中,巧妙地输入输出也为正确作答提供了保障。好了,blog到此结束,希望对大家有所帮助,一起进步!

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值