printf()函数的使用与注意
程序员文章站
2022-07-15 09:04:17
...
printf()
printf()函数是输出函数
请求printf()函数打印数据的指令要与待打印的数据的类型相匹配,他们指定了如何把数据转换成可显示的形式。
ANSIC标准提供的转换说明
转换说明 | 输出 |
---|---|
%a | 浮点数、十六进制数和p记数法 |
%A | 浮点数、十六进制数和p记数法 |
%c | 单个字符 |
%d | 有符号十进制整数 |
%e | 浮点数,e记数法 |
%E | 浮点数,e记数法 |
%f | 浮点数,十进制记数法 |
%g | 根据值的不同,自动选择%f或%e。%e格式用于指数小于-4或者大于后等于精度时 |
%G | 根据值的不同,自动选择%f或%e。%e格式用于指数小于-4或者大于后等于精度时 |
%i | 有符号十进制整数(与%d相同) |
%o | 无符号八进制整数 |
%p | 指针 |
%s | 字符串 |
%u | 无符号十进制整数 |
%x | 无符号十六进制整数,使用十六进制数0f |
%X | 无符号十六进制整数,使用十六进制数0F |
%% | 打印一个百分号 |
注:p记数法是c99里的十六进制浮点数的记数法,类似e,但不同,数以0x开头,然后是16进制浮点数的部分,接着是p,后面是2为低的阶码。
列如 0xb.1e5
b.1e是16进制浮点数,乘后面的p5。p5等于2的5次方。
e记数法,e是指数的意思,2.735e2=2.735×10的2次方。
printf()的格式
printf(格式字符串,待打印项1,待打印项2,·······);
printf("这个数是%d,那个数是%d",num,num1);
格式字符串就是双引号括起来的内容,num对应的第一个%d,num1对应第二个%d
待打印项1,代打印项2等都是要打印的项。他们可以是变量,常量,甚至是在打印之前先要计算的表达式。
格式字符串中的转换说明一定要与后面的每个项相匹配,若忘记这个基本要求会导致严重的后果。
如果只打印短语和句子,就不需要使用任何的转换说明。如果只打印数据,也不用加入说明文字。
printf()的转换说明修饰符
在%和转换字符之间插入修饰符可修饰基本的转换说明
修饰符 | 含义 |
---|---|
数字 | 最小字段宽度,如果该字段不能容纳待打印的数字或字符串,系统会使用更宽的字段 |
.数字 | 精度,对于%e,%E和%f转换,表示小数点右边数字的位数。 对于%g和%G转换,表示有效数字最大位数。 对于%s转换,表示待打印字符的最大数量。 对于整型转换,表示待打印数字的最小位数。 |
h | 和整型转换说明一起使用,表示short int或unsigned short int类型的值。 |
hh | 和整型转换说明一起使用,表示signed char或unsigned char类型的值 |
j | 和整型转换说明一起使用,表示intmax_t或uintmax_t类型的值,这些类型定义在stdint.h中 |
l | 和整型转换说明一起使用,表示long int或unsigned long int 类型的值 |
ll | 和整型转换说明一起使用,表示long long int 或unsigned long long int 类型的值 |
L | 和浮点转换说明一起使用,表示long double类型的值 |
t | 和整型转换说明一起使用,表示ptrdiff_t类型的值。ptrdiff_t是俩个指针差值的类型 |
z | 和整型转换说明一起使用,表示size_t类型的值。size_t是sizeof返回的类型 |
printf()中的标记
标记 | 含义 |
---|---|
- | 待打印项左对齐。即,从字段的左侧开始打印该项 |
+ | 有符号值若为正,则在值前面显示加号;若为负,则在值前面显示减号 |
空格 | 有符号值若为正,则在值前面显示前导空格(不显示任何符号);若为负,则在前面显示减号。+标记覆盖一个空格 |
# | 把结果转换成另外一种形式。如果是%o格式,则以0开始;如果是%x或者%X格式,则以0x或者0X开始;对于所有的浮点数,#保证了即使后面没有任何数字,也要打印一个小数点的字符。对于%g或者%G格式,#防止结果后面的0被删除 |
0 | 对于数值格式,用前导0代替空格填充字段宽度,对于整数格式,如果出现-标记或指定精度,则忽略该标记 |
printf()的返回值
printf的返回值是返回打印字符的个数。如果输入错误,则返回一个负值。
printf()的返回值是其打印输出功能的附带用途,通常很少用到,但在检查输出错误时可能会用到。如果一张已满的CD或DVD拒绝写入时,程序应该采取相应的行动。
上一篇: printf函数的使用
下一篇: 使用printf函数输出