输出内容 | | | |
d | 以十进制格式输出整数 d也可以用i来代替,这是比较老式的用法 | printf(“%i”,123); | 123 |
x | 以十六进制格式输出整数 如果字母要大写,则使用X | printf(“0x%x 0x%X”,123,123); | 0x7b 0x7B |
o | 以八进制格式输出整数 | printf(“0%o”,123); | 0173 |
u | 以十进制格式输出无符号整数 | printf(“%u”,0xFFFFFFFFFFFFFFFF); | 4294967295 |
f | 输出单精度浮点数 一般配合其它控制字符使用,比如保留几位小数 如果字母要大写,则使用F | printf(“%.3f”,0.123456); | 0.123 |
lf | 输出长精度浮点数 没有LF这种大写格式 | printf(“%.3lf”,0.123456); | 0.123 |
e | 以科学计数法格式输出浮点数 如果字母要大写,则使用E | printf(“%e %E”,0.000000123,0.000000123); | 1.230000e-07 1.230000E-07 |
g | 根据打印长度,自动选择%f和%e中较短的 如果字母要大写,则使用G | printf(“%g %g”,0.000000123,0.123); | 1.23e-07 0.123 |
c | 输出ASCII码对应的字符 | printf(“%c”,65) | A |
s | 输出字符串 如果要输出宽字符串,则使用S | printf(“%s”,“Hello World”); | Hello World |
p | 以十六进制格式输出对象地址 | printf(“0x%p”,new int(0)); | 0x0000000000681a50 |
n | 将前面已输出的字符总数,保存到指定的整型变量当中 | | |
% | 输出百分号字符 | printf(“%%”); | % |
m | 打印最近一次error的错误信息 | printf(“%d”, errno); printf(“%s”, strerror(errno)); printf(“%m”); | 0 No error No error |
控制宽度和对齐 | | | |
| 指定最小宽度,不足以空格或0补齐 不指定则默认使用空格 | printf(“%06d % 6d”, 1234, 1234); | 001234 ??1234 |
* | 指定最小宽度,不足以指定字符补齐 *表示通过参数列表来指定宽度值 | printf(“%0*d % *d”, 8, 1234, 8, 1234); | 00001234 ????1234 |
| 指定浮点数精度,不足以0补齐,过长则截断 | printf(“%.8f”,1000.123456); | 1000.12345600 |
* | 指定浮点数精度,不足以0补齐,过长则截断 *表示通过参数列表来指定精度值 | printf(“%.*f”, 8, 1000.123456); | 1000.12345600 |
| 指定有效数字位数,小数部分过长则截断,整数部分过长则转为科学计数法 | printf(“%.8g”,1000.123456); | 1000.1235 |
| 指定字符串最大长度,过长则截断 | printf(“%.3s”, “ABCDEFG”); | ABC |
- | 左对齐,宽度不够时,在右侧补上空格 默认是右对齐,空格补在左侧 | printf(“(%4d)(%-4d)”, 123, 123); | ( 123)(123 ) |
+ | 输出正号 | printf(“(%+d)(%+d)”, 123, -123); | (+123)(-123) |
space | 输出正数时,左侧补上空格 | printf(“(% d)(% d)”, 123, -123); | ( 123)(-123) |
# | 与0,x一起使用,表示输出八进制,十六进制前缀 | printf(“(%#o)(%#x)”, 8, 8); | (010)(0x8) |
# | 与f和小数点一起使用,表示保留小数位 当小数点保留0位时,带#仍然输出小数点,无#则不输出小数点 | printf(“(%#.4f)(%.4f)”, 1000.12345, 1000.12345); printf(“(%#.0f)(%.0f)”, 1000.12345, 1000.12345); | (1000.1235)(1000.1235) (1000.)(1000) |
指定数据类型 | | | |
l | 表示long 配合d使用,表示long int 配合u使用,表示long unsigned int 配合s使用,表示wchar | | |
ll | 表示long long,和l的用法一致 | | |
h | 表示short,和l的用法用法一致 | | |
hh | 表示short short 配合d使用,表示char 配合u使用,表示unsigned char | printf("%llu “,0xFFFFFFFFFFFFFFFF); printf(”%lu “,0xFFFFFFFFFFFFFFFF); printf(”%hu “,0xFFFFFFFFFFFFFFFF); printf(”%hhu “,0xFFFFFFFFFFFFFFFF); printf(”%hhd ",0xFFFFFFFFFFFFFFFF); | 18446744073709551615 4294967295 65535 255 -1 |