C语言基础入门48篇_06-printf进阶

本文详细介绍了C语言中格式化输出的完整语法及常见转义字符的应用,包括宽度、精度控制、对齐方式等内容,并举例说明了不同操作系统的换行符区别。

1. 格式化控制的完整语法

%[格式标志][宽度][.精度]输出类型
  • 输出类型:之前课程中介绍过的d,c,f,X,u等
  • 宽度:输出内容所占的最小宽度
  • 格式标志:与对齐方式、补位方式、是否输出正负符号、是否输出特殊进制的前缀有关,可以同时设置多个标志

(1) 最小占用宽度
可以通过数字,指定输出内容的所占的最小宽度。

#include <stdio.h>


int main(int argc, char* argv[])
{
 printf("%8d"/*数字表示占有的最小宽度*/, 15);
 return 0;
}

在这里插入图片描述
(2) 精度
小数点后接数字,代表了输出精度,对于不同的输出类型,精度的意义不一样。
对于十进制、十六进制,精度代表输出的最少数字位数。
对于浮点数,精度代表小数部分的位数。

#include <stdio.h>


int main(int argc, char* argv[])
{
 printf("%.3d", 15);
 return 0;
}

在这里插入图片描述
(3) 小数控制精度:

#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("%.8f", 3.1415926);
 return 0;
}

在这里插入图片描述
(4) 格式标志
左对齐
“-”代表左对齐,默认是右对齐

#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("%-8d", 15);
 return 0;
}

在这里插入图片描述
输出符号
“+”代表会输出符号(无论正负),默认只有负数才输出符号

#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("%+d", 15);
 return 0;
}

在这里插入图片描述
补位
“0”代表如果输出位数不足,则会补0填充

#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("%08X", 15);
 return 0;
}

在这里插入图片描述
显示进制前缀
“#”表示对于十六进制、八进制的输出,显示进制前缀。十六进制的前缀是"0X",八进制的前缀是"0"。

#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("%#X, %#o", 15, 07);
 return 0;
}

在这里插入图片描述
2. 常见的转义字符
回车与换行
回车换行的区分,来源于打字机。

严格地说,回车只代表将光标移动到行首,并不会另起一行。
不过这都是历史话题了,我们只要知道历史遗留下来的习惯导致,在不同的操作系统中,使用的换行方式是不同的,具体而言:

  • Windows下习惯使用\r\n作为换行
  • Linux与Unix下习惯使用\n作为换行
  • Mac上习惯使用\r作为换行
    只回车不换行导致字符被覆盖的例子:
#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("abc\rdef");
 return 0;
}

在这里插入图片描述
3. 制表符
\t代表制表符。
制表符对应着我们键盘Tab键的效果(大小写锁定键上面),在输出时可用于对齐。

#include <stdio.h>

int main(int argc, char* argv[])
{
 printf("姓名\t学号\t生日\r\n");
 return 0;
}

在这里插入图片描述
4.学习视频地址:printf进阶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月旧城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值