您好,欢迎来到华佗养生网。
搜索
您的当前位置:首页C语言的格式控制符

C语言的格式控制符

来源:华佗养生网
C语⾔的格式控制符

1. 格式控制符

格式输出printf 作⽤是向终端输出若⼲个类型任意的数据。格式:printf (格式控制符,输出列表)1) 格式控制符

l %  格式说明引导符。l -  指定左对齐输出。l 0  指定空位填零。l m.n 指定输出域宽度及精度

m表⽰数据最⼩宽度,如果实际数据宽度>m,按实际数据宽度输出,如果实际数据宽度h 只⽤于整型的格式字符修正为short例:%hd , %hx , %ho , %hu

2) 格式字符 指定输出项的数据类型和输出格式。

|   i   (%i与%d的区别, 在printf中这两者没有区别,但是在scanf中略有不同,⽐如scanf(\"%i%d\      如果你输⼊ 012 012 之后a=12 ,b=10, %i会把⼋进制和⼗六进制转换成⼗进制后写⼊)l d  有符号⼗进制整数。l o  ⽆符号⼋进制数。

l x   ⽆符号⼗六进制数(⼩写的x格式中⽤⼩写字母a,b,c,d,e,f来表⽰10到15之间的数,⼤写的X则⽤⼤写的ABCDEF来表⽰10到15之间的数)

l u  不带符号的⼗进制整数。l c   输出⼀个字符。l s  输出⼀个字符串

l e  以指数形式输出实型数。

l f 以⼩数形式输出实型数(单精度,或称浮点数)。

l g   ⾃动决定输出格式为e和f中较短的⼀种,不打印⽆效的零。l %   输出%

补充:%a(%A) 浮点数、⼗六进制数字和p-(P-)记数法(C99) %p 指针 注意:

对于单精度数,使⽤ %f 格式符输出时,仅前7位是有效数字,⼩数6位(有效数字定义:在⼀个中,从左边第⼀个不是0的数字起,到精确到末位数⽌,所有的数字,都叫这个近似数字的有效数字)。

对于双精度数,使⽤ %lf 格式符输出时,前16位是有效数字,⼩数6位。

编译程序只是检查printf 函数的调⽤形式,不分析格式控制字符串,如果格式字符与输出项的类型不匹配,不进⾏类型转换(输出的数为随机)。

格式控制字符串中可以包含。

格式控制字符串中的普通字符则原样输出。

输出项的参数除了常数、变量外还可以是表达式、函数调⽤。

%g,%f和%e这三个格式⽤于打印浮点值,%g格式⽤于打印那些不需要按列对齐的浮点数特别有⽤,其作⽤有:a) 去掉该数尾多余的零(没有达到六位的数)b) 保留六位有效数字(多余六位的)

%e格式⽤于打印浮点数时,⼀律显式地使⽤指数形式例如:输出圆周率时是:3.141593e+00 它们的区别:

%g格式打印出的数是总共6位有效数字 %e格式打印出⼩数点后的6位有效数字

%f禁⽌使⽤指数形式来表⽰浮点数,因此圆周率输出为:3.141593(但注意它的精度要求:也是⼩数点后6位有效数字) %E和%G只是在输出时⽤⼤写字母(E)代替了⼩写字母(e) %%格式⽤于打印⼀个%字符。 输出正负号的技巧,例如:printf(\"%+d %+d %+d\\n\

只要在中间加个“+”号就⾏,作⽤是输出符号位(即,数的正负号)

如果不希望正数的前⾯出现‘+’号,只要在“% d”中间加个“ ”号(即空格)就⾏,例如:int i;

for(i=-3;i<=3;i++)

printf(\"% d\\n\注意%和d之间有⼀个空格

2. 转义字符\\a: 蜂鸣,响铃\\b: 回退:向后退⼀格\\f: 换页

\\n: 换⾏,光标到下⾏⾏⾸\\r: 回车,光标到本⾏⾏⾸\: ⽔平制表\\v: 垂直制表\\\\: 反斜杠\\': 单引号\\\": 双引号\\?: 问号

\\ddd: 1到3位⼋进制数所代表的字符\\xhh: 1到2位⼗六进制数所代表的字符\\0: 空字符(NULL),什么都不做

注:

l \\v垂直制表和\\f换页符对屏幕没有任何影响,但会影响打印机执⾏响应操作。l \\n其实应该叫回车换⾏。换⾏只是换⼀⾏;\\r回车只是回到⾏⾸。l \ 光标向前移动四格或⼋格,可以在编译器⾥设置

l \\' 在字符⾥(即单引号⾥)使⽤。在字符串⾥(即双引号⾥)不需要,只要⽤ ' 即可。例:

如果在字符'a'中直接使⽤',就会出现这种情形:'a'' ,编译器会报错,因为编译器会认为多写了⼀个单引号。所以在字符中时,必须使⽤\\',以避免歧义性。

如果为了在字符串⾥⾯添加⼀个单引号,直接⽤单引号 ' 即可,如果⽤转义字符 \\' 的话就会把\\'两者直接算进去。

其实格式控制符还有很多功能,就不⼀⼀介绍了。。。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo7.cn 版权所有 湘ICP备2022005869号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务