printf()函数的使用与注意

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拒绝写入时,程序应该采取相应的行动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值