A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 77媛儿 中级黑马   /  2014-3-18 08:11  /  4127 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

printf函数输出中%10d,%-3d,对齐原理是什么

7 个回复

倒序浏览
%10d--可以指定宽度,不足的左边补空格
%-3d--左对齐
回复 使用道具 举报
printf函数输出中%10d,%-3d,对齐原理是什么,

LZ 可以去查阅include.h 头文件中的函数,

如:
#include <stdio.h>

int main()
{
        int a = 10;
        printf("###%15d***\n",a);     // 左边扑空格,当输出的位数不足15位时候 ,也就是 3个#号,加上10,2位,一共5位,还要补10位就是空格
        printf("###%-15d***\n", a);  // 右边补空格,当输出的位数不足15位时候 ,也就是 3个*号,加上10,2位,一共5位,还要补10位就是空格
}

输出:

###             10***
###10             ***


回复 使用道具 举报
用printf输出默认是右对齐,%后面加减号就是左对齐
回复 使用道具 举报
%d代表整数类型输出。
%10d代表输出控制除数字符的宽度
%-3代表输出宽度为3,并且左对齐,没有`-`符号代表默认,默认为右对齐
顺便说下,%2.3f,其中%f代表输出浮点数类型,2.代表输出宽度为2,.3代表保留小数点后3位小数长度
回复 使用道具 举报
printf的格式控制的完整格式:
%     -     0     m.n   
下面对组成格式说明的各项加以说明:
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
==================================
格式字符
格式字符用以指定输出项的数据类型和输出格式。
①d格式:用来输出十进制整数。有以下几种用法:
%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld:输出长整型数据。
%c      显示char型数据
%d,%i   按10进制显示int型数据
  %e,%E   按指数形式显示float型或double型数据
   %f      按小数形式显示float型或double型数据
   %p      按16进制显示指针型数据
   %s      显示字符串
回复 使用道具 举报
沙洲冷 来自手机 中级黑马 2014-3-18 16:23:55
7#
补充一点儿,%10d代表输出十进制整数占十个位置宽度,并且右对齐,不足的左边补空格,%-3d代表输出的十进制整数占三个位置宽度,并且左边对齐,不足的右边补空格。
回复 使用道具 举报
谢谢大家了 明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马