【C/C++】printf()函数用法汇总
汇总一下printf()的相关用法,并给出示例。
详情参见:printf(3)
使用printf()必须include <stdio.h>
。
printf()的功能主要是按格式化要求在终端控制台中打印出相应的字符。其返回值int表明当前执行的printf()总共打印出多少字符。当printf执行出错时,返回的结果是个负数。
1 | // c code |
#printf()操作字符串的可以有:
- 字符串的左、右对齐
- 字符串打印长度的设置
- 字符串填充符的前后设定
- ‘char’与数字的相互转换
1 | // 正常的打印字符串 |
以上的示例中,不存在%-010s
这样’-‘与’0’共存的设置,当两者都出现时,编译器会自动忽略掉’0’而只让’-‘生效。
#设置字符串最小长度的另一种方法
1 | // d表示普通的十进制数字。打印出宽度为5的数字21。即左边填充3个空格。 |
#操作数字的功能有:
设定数字的输出进制表达式
o:八进制
d:十进制
u:无符号数的十进制
x:十六进制(字母部分大写)
X:十六进制(字母部分小写))1
2
3printf("%o %d %u %d %x %X\n", 123, 123, -123, -123, 123, 123);
// output
173 123 4294967173 -123 7b 7B操作数字打印的长度及精度
操作数字打印的左、右对齐方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19// %f默认小数点后6位数
printf("%f|end\n", 12.3);
// %f默认小数点后2位数
printf("%.2f|end\n", 12.3);
// %f默认小数点后2位数,打印的字符串长度最小值为6,不足的个数用' '填充在左边
printf("%6.2f|end\n", 12.3);
// %f默认小数点后2位数,打印的字符串长度最小值为6,不足的个数用' '填充在左边
printf("% 6.2f|end\n", 12.3);
// %f默认小数点后2位数,打印的字符串长度最小值为6,不足的个数用'0'填充在左边
printf("%06.2f|end\n", 12.3);
// %f默认小数点后2位数,打印的字符串长度最小值为6,不足的个数用' '填充在右边
printf("%-6.2f|end\n", 12.3);
// output
12.300000|end
12.30|end
12.30|end
12.30|end
012.30|end
12.30 |end
以上的示例中,不存在%-06f
这样’-‘与’0’共存的设置,当两者都出现时,编译器会自动忽略掉’0’而只让’-‘生效。
#打印科学计数法
1 | // 默认小数点后6位,e小写 |
#%G与%f、%e的区别
%g 使用%e或%f中较短的一个
%G 使用%E或%f中较短的一个
1 | double a=1000000000; |
#打印一个指针指向的地址
1 | char * p = &"test string"; |
#只输出一个%
1 | printf("%%"); |