前言
原本以为C语言中的转换字符并没有多少,今天深入了解之后发现我还是年轻了,因此整理下来以供参考。
这么多的转换字符并不一定都是常用的,全记住也是很难的,最好是用一个记一个,防止用的时候找不到,建议大家收藏起来!!!
总结
printf()
函数中的转换字符在计算机中的作用是把原先在计算机中存储的二进制数据转换成相应的形式展现出来,以下列举了printf()
函数中的转换字符。
转换字符 | 输出 |
---|---|
%a或A | 浮点型、十六进制、p计数法 |
%c | char型,单个字符 |
%d | int型 |
%e或E | 科学计数法(e计数法)输出浮点型 |
%f | 浮点型 |
%g或G | 根据值的不同,自动选择%f或%e %e用于指数小于-4或者大于等于其精度时 |
%i | 有符号十进制(同%d) |
%o | 无符号八进制 |
%p | 指针 |
%s | 字符串(char数组) |
%u | 无符号十进制整数 |
%x或X | 无符号十六进制 |
%% | 百分号 |
以上为基础数据类型的转换符,此外基础数据类型还可以被修饰符进行修饰,比如long int、unsigned short int等等可以用%ld,%hu等转换
修饰符 | 含义 |
---|---|
标记 | 见标记表格 |
数字 | 最小字段宽度,如%4d,输出宽度为4的一串数据 该数据小于这个宽度会在前面补空格 该数据大于这个宽度系统会自动进行扩展 |
.数字 | 表示精度 对于%e和%f表示小数点后的小数位数 对于%g表示有效数字 对于%s表示字符个数 |
以下修饰符皆于整数类型搭配使用 | |
h | 代表short,限定输出格式为16位,即两个字节 比如short int、unsigned short int %hd、%hu |
hh | %hh的作用是限定输出格式为8位,即一个字节 %hhu、%hhx |
j | 表示intmax_t、uintmax_t类型的值,该类型存储在stdint.h中 |
l | 限定输出格式为32位,即四个字节 |
ll | 限定输出格式为64位,即八个字节 |
L | 输出实数,支持long double类型 |
t | 表示printff_t类型的值,printff_t是两指针差值的类型 |
z | 表示sizeof返回值的类型的值 %zd |
标记 | 含义 |
---|---|
- | 将待打印项左对齐 |
+ | 对于有符号值,正值前加+号,负值前加-号 |
空格 | 对于有符号值,正值前加空格,负值前加-号 |
# | 对于%o和%x格式来说,会打印结果前加上0或0x表示进制 对于浮点格式,即使小数点后没有值也会打印一个. 对于%g格式,防止结果后的0被删除 |
0 | 对于数值型来说,用0代替空格 比如: %02d打印1时会打印01 |
注意:
表格里的L,a,e不限大小写,但是为了防止
l
与1
分辨不清,所以最好用大写Lp计数法就是十六进制的浮点数,具体例子:
0x1b.e2 = 1*(16^1) + 11*(16^0) + 14*(16^(-1)) + 2*(16^(-2))
表格中有些是C99新添加的标准,因此有的编译器并不一定支持