printf()函数输出数据格式汇总

总结几个常用的printf输出数据格式:

1、整型:

%d,十进制整型;------->有符号的十进制整型

%ld,十进制长整型;

%3d,位数为3,不足在左边补空格;

%-3d,位数为3,不足在右边补空格;(-可以理解为非,默认是在左边加0和空格的,-表示不是在左边,那就是在右边了?)

%05d,位数为5,不足的在左边补0 //不可能在右边补0

%u,无符号十进制整型;

%lu,无符号十进制长整型;

%o,无符号八进制整型;//形如012

%lo,无符号八进制长整型;

%x,无符号十六进制整型;//形如0x12

%X,无符号十六进制整型大写;//形如0xAA

%04x,位数为4,不足的在左边补0-------------------->经常使用

%lx,无符号十六进制长整型;

此外,还有:

%llu 64位无符号

d,lx,ld,,lu,这几个都是输出32位的

hd,hx,hu,这几个都是输出16位数据的,

hhd,hhx,hhu,这几个都是输出8位的,

lld,ll,llu,llx,这几个都是输出64位的,

ps:在上述的整型显示中,对于十六进制数,并没有有符号输出形式,全是无符号,因为此时是以二进制数(对应十六进制数)形式展示的,不存在符号位。只有转换成对应的十进制数时,才有符号的概念。

以下为转载:c语言的输出默认的是左对齐还是右对齐_三余丨无梦生-CSDN博客_默认左对齐

左对齐还是右对齐是在有对齐的需要的时候才有意义的。由于你并没有指定每个int值输出的长度,因此int值有多长就会输出多长,此时没有讨论左对齐或者右对齐的意义。

你只有加上%10d的时候(10只是我举的例子),这时候限定了int值输出长度为10,而12345这个int值的长度为5,这时候就有左对齐还是右对齐的分别了。

#include <stdio.h>

void main(){

printf("%10d\n%10d\n%10d\n",12345,1234,123);

}

 如果你使用%-10d这时候就是:

2、实型:

%f   float

%lf  double实型;

m.n:m指域宽,即实型数所占的总的位数,包含小数点(并不是整数部分的位数!!)。n指精度,即实型数的小数位数。

未指定n时,隐含的精度为n=6位。即%f的话,输出的是6位小数。

%f:不指定宽度,整数部分全部输出并输出6位小数。
%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。 
%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

m的存在,与整型变量的位数类似,主要是为了保持数据的整齐。

其实,我们有时候不写m,而只关心小数位数

    float fvalue = 342.588888;
    printf("%f\n",fvalue);
    printf("%.2f\n",fvalue);
    printf("%.0f\n",fvalue);//整数被四舍五入
    printf("%2.2f\n",fvalue);//总列数少于整数位数+保留的小数位数
    printf("%8.2f\n",fvalue);//总列数(包含小数点)大于整数位数+保留的小数位数,左边补空格
    printf("%08.2f\n",fvalue);//总列数(包含小数点)大于整数位数+保留的小数位数,左边补0

3、字符:

%c,字符

4、字符串

%s,字符串

%7s,字符串,不足7位的在左边补空格//形式跟int一样

%07s,字符串,不足7位的在左边补0//形式跟int一样

5、指针

%p,指针

  • 22
    点赞
  • 191
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值