printf是什么意思里为什么是%4d

posts - 7,&
comments - 0,&
trackbacks - 0
printf 输出格式(一)使用printf输出各种格式的字符串1. 原样输出字符串:
printf(&%s&, str);2. 输出指定长度的字符串, 超长时不截断, 不足时右对齐:
printf(&%Ns&, str);
&N 为指定长度的10进制数值3. 输出指定长度的字符串, 超长时不截断, 不足时左对齐:
printf(&%-Ns&, str);
&N 为指定长度的10进制数值4. 输出指定长度的字符串, 超长时截断, 不足时右对齐:
printf(&%N.Ms&, str);
&N 为最终的字符串输出长度
&M 为从参数字符串中取出的子串长度5. 输出指定长度的字符串, 超长时截断, 不足时左对齐是:
printf(&%-N.Ms&, str);
&N 为最终的字符串输出长度
&M 为从参数字符串中取出的子串长度 ★d格式符,用来输出十进制整数.
⑴%d,按整型数据的实际长度输出.
⑵%md,m为指定的输出字段的宽度,数据位数小于m,左边补空格,若大于m,按实际长度输出
⑶%ld,输出长整型数据(long) ★o格式符,以八进制输出整数(不带符号,他将符号位也作为八进制数的一部分了)
⑴%o,参考%d的解释.
⑵%lo,参考%ld的解释.
⑶%mo,参考%md的解释. ★x,X格式符,以十六进制输出整数
也是3种参考%d的解释. ★u格式符,用来将unsigned型数据,既无符号数,以十进制形式输出 ★c格式符,输出一个字符. ★s格式符,输出一个字符串.
⑴%s,如printf(&%s&,&CHINA&)
⑵%ms,输出的字符串占m列,字符串长度小于m,左边补空格,如果超出则全部输出.
⑶%-ms,串小于m,则在m列范围内字符串左靠,右补空格.
⑷%m.ns,输出占m列,但只取字符串左端n个字符.这n个字符输出在m列的右边,然后左边补空格.
⑸%-m.ns,和上面的放下,就是n个字符输出在m列的左侧,右边补空格.n&m,那么m自动取n的值,既保证n个字符正常输出.
printf(&%3s,%7.2s,%.4s,%-5.3s&,&CHINA&,&CHINA&,&CHINA&,&CHINA&); ★f格式符,用来输出实数,以小数形式输出.
⑴%f,全部输出,而且输出6位小数.
⑵%m.nf,输出数据共占m列,n位小数,如果数据长度小于m那么左边补空格
⑶%-m.nf,和上面的m.nf相反,为左靠齐,右补空格. ★e,E格式符,以指数形式输出实数
⑴%e,不指定输出数据所占的宽度和数字部分的小数位数.
⑵%m.ne和%-m.ne,这里n指小数部分的位数 ★g,G格式符,用来输出实数,它根据数值大小,自动选择f格式还是e格式,(选占宽最少的一种),且不输出无意义的0.这种格式用的不多.
文章分类:综合技术  printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出   信息。在编写程序时经常会用到此函数。函数的原型为:   int printf(const char *format, ...);   函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。   printf()函数的调用格式为:   printf("&格式化字符串&", &参量表&);   其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原   样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,   用来确定输出内容格式。   参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出   参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想   不到的错误。   注意:函数printf从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所有我们看见的结果是,从右边开始处理的。   1. 格式化规定符   Turbo C2.0提供的格式化规定符如下:   ━━━━━━━━━━━━━━━━━━━━━━━━━━ a 符号 作用   &&&&&&&&&&&&&&&&&&&&&&&&&&   %d 十进制有符号整数   %u 十进制无符号整数   %f 浮点数   %s 字符串   %c 单个字符   %p 指针的值   %e 指数形式的浮点数   %x, %X 无符号以十六进制表示的整数   %o 无符号以八进制表示的整数   %g 自动选择合适的表示法   ━━━━━━━━━━━━━━━━━━━━━━━━━━   说明:   (1). 可以在"%"和字母之间插进数字表示最大场宽。   例如: %3d 表示输出3位整型数, 不够3位右对齐。   %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,   小数点占一位, 不够9位右对齐。   %8s 表示输出8个字符的字符串, 不够8个字符右对齐。   如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。   但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;   若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。   另外, 若想在输出值前加一些0, 就应在场宽项前加个0。   例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度   为4位。   如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,   小数点前的数字代表最小宽度。   例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则   第9个字符以后的内容将被删除。   (2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。   例如: %ld 表示输出long整数   %lf 表示输出double浮点数   (3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可   说明输出为左对齐, 否则为右对齐。   例如: %-7d 表示输出7位整数左对齐   %-10s 表示输出10个字符左对齐   2. 一些特殊规定字符   ━━━━━━━━━━━━━━━━━━━━━━━━━━ b 字符 作用   &&&&&&&&&&&&&&&&&&&&&&&&&&   /n 换行   /f 清屏并换页   /r 回车   /t Tab符   /xhh 表示一个ASCII码用16进表示,   其中hh是1到2个16进制数   ━━━━━━━━━━━━━━━━━━━━━━━━━━   由本节所学的printf()函数, 并结合上一节学习的数据类型, 编制下面的程   序, 以加深对Turbo C2.0数据类型的了解。 示例   #include&stdio.h&   #include&string.h&   int main()   {   char c, s[20], *p;   int a=1234, *i;   float f=3.;   double x=0.54321;   p="How do you do";   strcpy(s, "Hello, Comrade");   *i=12;   c='/x41';   printf("a=%d/n", a); /*结果输出十进制整数a=1234*/   printf("a=%6d/n", a); /*结果输出6位十进制数a= 1234*/   printf("a=%06d/n", a); /*结果输出6位十进制数a=001234*/   printf("a=%2d/n", a); /*a超过2位, 按实际值输出a=1234*/   printf("*i=%4d/n", *i); /*输出4位十进制整数*i= 12*/   printf("*i=%-4d/n", *i); /*输出左对齐4位十进制整数*i=12*/   printf("i=%p/n", i); /*输出地址i=06E4*/   printf("f=%f/n", f); /*输出浮点数f=3.141593*/   printf("f=6.4f/n", f); /*输出6位其中小数点后4位的浮点数   f=3.1416*/   printf("x=%lf/n", x); /*输出长浮点数x=0.123457*/   printf("x=%18.16lf/n", x);/*输出18位其中小数点后16位的长浮点   数x=0.5432*/   printf("c=%c/n", c); /*输出字符c=A*/   printf("c=%x/n", c); /*输出字符的ASCII码值c=41*/   printf("s[]=%s/n", s); /*输出数组字符串s[]=Hello, Comrade*/   printf("s[]=%6.9s/n", s);/*输出最多9个字符的字符串s[]=Hello,   Co*/   printf("s=%p/n", s); /*输出数组字符串首字符地址s=FFBE*/   printf("*p=%s/n", p); /* 输出指针字符串p=How do you do*/   printf("p=%p/n", p); /*输出指针的值p=0194*/   getch();   retunr 0;   }
阅读(...) 评论()c语言中,输出函数中的%-4d是什么意思_百度知道
c语言中,输出函数中的%-4d是什么意思
我有更好的答案
%-4d是用于C语言输出的格式字符串,可以用于printf类函数,包括printf, sprintf, fprintf,vfprintf,vprintf,vsprintf,snprintf,vsnprintf,vasprintf等等。各种函数中的含义是相同的,都是按照10进制形式输出整数值,输出值范围如果不足4列宽度,那么按4列宽度输出,否则按实际宽度输出。 输出结果数值在左侧,右侧用空格补足。%-4d的四个字符每个都有各自的功能,具体如下:1 %:格式字符串的引导标识,每个格式字符串必须以%开头。2 -: 输出的内容左侧为有效数据,右侧为补足字符。3 4:输出占4列宽度,不足用空格补齐,超出按实际长度输出。4 d: 按照10进制整型输出。下面这个例子输出两行数据,每行五个数值:#include&&stdio.h&int&main(){ printf(&%-4d%-4d%-4d%-4d%-4d\n&,1,12,123,45); printf(&%-4d%-4d%-4d%-4d%-4d\n&,23,123,456); return&0;}输出结果为1&&&12&&123&23&&123&23411&&&123456从中可以看到其作用及缺陷。对于低于4位的整数,可以很好的实现输出及对齐效果,比如例子中的第一列和第二列。如果输出位数为4位,那么输出值和下一个输出间不会有分隔符,比如第二行的3 4两列,本来是2341和1,但输出的效果是一个数23411。当数值超过4位时对齐效果会被打乱,同时与下一个输出见没有间隔。比如第一行的第四列,输出数值为123412,与下一个12345没有分隔,同时第五列的12345本应与第二行的123456左对齐,但由于123412侵占了该位置,导致二者无法达成对齐效果。所以%-4d这类格式输出,仅使用与数据规模在四位数以下的情况,超出则会出错。如果在数据中存在负值,则负值仅可以为三位数或以下,因为输出的符号也同样会占一列宽度。
软件工程师
4代表输出4个字符 -代表左对齐的意思#include&stdio.h& void main() {int m,n;
for(m=1;m&=9;m++)
{for(n=1;n&=9;n++)
printf(&%1d*%1d=%-4d&,m,n,m*n);
printf(&\n&); } } 用这个程序理解一下^ ^
那右对齐呢〜
以字符为对象,默认是右对齐
本回答被提问者采纳
%d是输出整数,中间的-4是指输出占用4个字符宽度,如果实际输出不足4位则右补空格,否则按实际宽度输出,如果去掉负号写成%4d,就是左补空格,其余含意一致。
按&整型&输出,&占4个字符宽,&数字左对齐如&输出&1,22,344,5555,效果如下1&&&&其它输出&22&&&其它输出&344&&其它输出&&5555&其它输出&
那个负号是什么意思 左对齐吗
不写负号,默认就是右对齐的
其他2条回答
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。c语言中的%4d是什么意思?_百度知道
c语言中的%4d是什么意思?
我有更好的答案
这是printf的格式化参数,表示输出一个整型数值,输出宽度为4,且右对齐,如:printf( &%4d&, 1 );
//输出1的前边有3个空格,补齐4位的宽度printf( &%4d&, 11);
//输出11前边有2个空格,补齐4位的宽度printf( &%4d&, 11111 );11111
//因为超过了4位,所以前边没有空格如果要左对齐,则改为 %-4d
采纳率:58%
格式控制符,4代表width,表示输出整数的最小域宽。d表示以整数输出
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。%4d\t %4.1f\t %4c是什么意思求解【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:708,510贴子:
%4d\t %4.1f\t %4c是什么意思求解收藏
public class Varible {&&&& /**&&&&& *
args&&&&& */&&&& public static void main(String[] args) {&&&&&&&& // TODO Auto-generated method stub&&&&& int ageOfStudent=5;&&&&& double scoreOfStudent=80.0;&&&&& char levelOfStudent='B';&&&&& System.out.println("年级\t得分\t等级");&&&&& System.out.printf("%4d\t %4.1f\t %4c",&&&&&&&&&&&&& ageOfStudent,scoreOfStudent,levelOfStudent);&&&& }}
51CTO学院12年行业品牌,1600万用户选择,中国专业IT技能学习平台.java资深名师授课,0基础从入门到精通,java报名与培训中心.
格式,你把第二个改成%4.2f\t就会打印80.00
那个%是什么意思啊
%4d\t %4.1f\t %4c这几个是占位符 %4d d表示int类型的,f float ,这样写后,它会把后边几个参数对应位置加入字符串 其它表示的意思不知道自己查吧
不太清楚,应该只是个标示符,必须加上不然会出错。%4.2f\t 改成 %1.2f\t 都一样,改成 %0.2f\t 就不行s表示String型 f表示float c是char型 d不知道是什么,不是double,可能是int \t是空格,
%后面的4 是表示输出值前面的空格数为4,1表示没有空格这是我摸索出来的不太确定
空格数为3, 1表示没有空格
登录百度帐号

我要回帖

更多关于 dll里的printf 的文章

 

随机推荐