格式占位符速通
格式占位符 %
格式占位符 % 是在 C/C++ 语言中格式输入函数,如 scanf、printf 等函数中使用。
其意义就是起到格式占位的意思,表示在该位置有输入或者输出。
规定符
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出
%p 输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
%% 输出百分号字符本身。
除了格式化说明符之外的一些选项控制
除了格式化说明符之外,printf() 函数还支持一些标志和选项,用于控制输出的精度、宽度、填充字符和对齐方式等。例如:
%-10s:左对齐并占用宽度为 10 的字符串;
%5.2f:右对齐并占用宽度为 5,保留两位小数的浮点数;
%#x:输出带有 0x 前缀的十六进制数。
printf()函数
printf()格式
printf() 函数的声明:
int printf(const char *format, ...)
printf() 函数的调用格式为:
printf("<格式化字符串>", <参量表>);
format 标签属性是 %[flags][width][.precision][length]specifier
完整格式:< % + 格式 + 宽度 + . + 精度 + 长度类型 + 字母
>
注意:宽度是总的占位长度,含精度指定的小数位。
宽度不够补空格。小数位不够,补0
最常见格式:% + specifier
中间省略用默认格式
flags:特殊显示格式
左对齐(-
), 显示正数+(+
), 左边补空格或0, 显示不同进制符号或小数点(#
)
width:指定宽度,常用数字
width的数字:表示要输出的字符的最小数目。
如果输出的值短于该数,结果会用空格填充。
如果输出的值长于该数,结果不会被截断。
注意:如有小数点,小数点占一个位数
*
:不太常用
小数点,及之后的参数
小数点通常和precision放在一起:.precision
.precision:指定精度,常用数字
未指定时,默认为 1。如指定时不带有一个显式值,则假定为 0。
整数(d、i、o、u、x、X):precision 指定了要写入的数字的最小位数。
e、E 和 f 说明符:要在小数点后输出的小数位数。
g 和 G 说明符:要输出的最大有效位数。
s: 要输出的最大字符数。默认情况下,所有字符都会被输出,直到遇到末尾的空字符。
c 类型:没有任何影响。
length:指定长度类型
常用:h,l,L
示例
%m.nf
: 指以小数形式输出(输入)浮点型数据,宽度为m,且保留小数点后n位
format属性值详解
参考链接
菜鸟教程:C 库函数 – printf()