欢迎光临
我们一直在努力

【 C 惜忆 】 关于printf占位符的补充,检测一下

首先简单介绍一下printf函数,


msdn这个软件中介绍到,printf的参数是由 部分一:字符串 以及部分2 :若干参数列表组成

以及它的返回i值是 成功输出的字符个数

格式说明符以 % 开头,用于指定后续参数的输出格式。常见的格式说明符包括:(要记得)

  • %d 或 %i:输出有符号十进制整数。

  • %u:输出无符号十进制整数。

  • %o 输出八进制整数。

  • %x 或 %X:输出十六进制整数(小写或大写)。

  • %f:输出浮点数(默认保留 6 位小数)。

  • %c:输出单个字符。

  • %s:输出字符串。

  • %p:输出指针地址。

  • %%:输出 % 字符本身

% [标志] [域宽] [.精度] 类型符 

这个很 重要

一、域宽 就是表示占多少个字符的位置

% + 数字 +d  可以分两种情况

1. 数字为正 表示右对齐 如果该数字小于本身的长度就会在左边自动补空格

printf("%5d", 123);  表示出来就是 空格 空格 加 123

2.数字为负就是左对齐  同理在右边加空格

二、精度 %.加数字 浮点类型占位符

表示保留数字位小数

%.6f     等价于    %f 都是保留六位小数,默认就是保留六位

%05d 表示最少输出5位,不够就补0,

printf("%05d",123);输出  00123

三、对字符串也可以

就是%.数字 + s  最多输出 数字个字符

%.5s  

四、最后一点就是标志  

( + –  * 还有#)

想要输出八进制 和 十六进制数而且要带上前缀的话

要在% 和 进制符号之间加上 #比方说

%#o     或者    %#x 

就能直接 在八进制前加上 0 在十六进制前加上0x

这里并没有前缀 

仔细来看,别眨眼

通过输出对比之后发现,确实加上了前缀

以上都是单独使用的实例,大多情况下都是组合的

比方说

1  右对齐 + 保留2位小数

使用格式说明符 %8.2f:

  • 8 表示总域宽为8(包含小数点和小数部分)

  • .2 表示保留2位小数

  • 默认右对齐

float num = 123.4567;
printf("%8.2f", num);  // 输出:"  123.46"(前面2个空格)

2  左对齐 + 保留1位小数

使用格式说明符 %-宽度.1f,左对齐需加 -:

  • %-7.1f 表示总宽度7,左对齐,保留1位小数

float num = 123.4567;
printf("%-7.1f", num);  // 输出:"123.5  "(后面2个空格)

3  补零 + 5位整数

使用格式说明符 %05d:

  • 05 表示总宽度5,不足部分补零

  • 仅适用于整数(d 类型符)

int num = 12;
printf("%05d", num);  // 输出:"00012"
 

追忆

  • %.f 等价于 %.0f,保留0位小数(直接截断,不四舍五入)。

  • %f 默认保留6位小数,与 %.6f 效果相同。

赞(0)
未经允许不得转载:171主机测评 » 【 C 惜忆 】 关于printf占位符的补充,检测一下
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址