c语言格式控制参数

c语言格式控制参数

  • 一、整数的格式控制参数
    • (1) %d
    • (2) %md
    • (3) %ld
    • (4) %u
    • (5) %mu
    • (6) %lu
    • (7) %o(这是英文字母o)
    • (8) %#o
    • (9) %0x(这里是零)和%x 和%X %0X
    • (10) %#0x
    • (11) %lld
    • (12)%llu
  • 二、浮点数(实数)格式控制参数
    • (1) %f
    • (2) %lf
    • (3) %m.nf 和 %-m.nf
    • (4) %e
    • (5) %le
    • (6) %g
  • 三、字符的格式控制参数
    • %c
    • %s
    • %m.ns 和 %-m.ns
  • 四、其他
    • %%
    • %n
    • %0

一、整数的格式控制参数

(1) %d

%d	  十进制有符号整数(int)

(2) %md

%md
与%d相比用m限制了输出的数据位数。当数据的位数小于m时前面补空格
当位数大于m时,数据按原数输出。

c语言格式控制参数_第1张图片

(3) %ld

%ld    十进制有符号长整数(long intlong)

(4) %u

%u       十进制无符号整数(unsigned int)

(5) %mu

%mu
与%u相比用m限制了输出的数据位数。当数据的位数小于m时前面补空格
当位数大于m时,数据按原数输出。

(6) %lu

%lu   十进制无符号长整数(unsigned long intunsigned long)

(7) %o(这是英文字母o)

%o(这是英文字母o)   以八进制输出

(8) %#o

%#o(这是英文字母o) 输出时显示八进制前缀

(9) %0x(这里是零)和%x 和%X %0X

%0x(这里是零)   以十六进制数输出          小写
%x              以十六进制数输出          小写
%X              以十六进制数输出    字母是大写的
%0X             以十六进制数输出    字母是大写的

c语言格式控制参数_第2张图片

(10) %#0x

%#0x(这里是零)  输出时显示十六进制前缀

c语言格式控制参数_第3张图片

(11) %lld

%lld    输出 long  long (int)

(12)%llu

%llu  输出 unsigned long  long (int)

二、浮点数(实数)格式控制参数

(1) %f

%f   输出(十进制)单精度浮点数或者双精度浮点数,整数部分全部输出小数部分为6位。

(2) %lf

%lf   输出(十进制)双精度浮点数,整数部分全部输出小数部分为6位。

c语言格式控制参数_第4张图片
c语言格式控制参数_第5张图片

可以看出用%f输出双精度浮点数效果和用%lf一样,不会失真。
用%lf输出单精度浮点数效果和%f一样,并不会出错。
   
而 scanf 输入情况下 double 必须用 %lf,float %f 和%lf可以混用。

c语言格式控制参数_第6张图片
c语言格式控制参数_第7张图片

可以看出在scanf()double 只能用%lf,而float可以用%f和%lf。
注意: 我们可以发现输出的小数位数最后一位会自动的四舍五入。

(3) %m.nf 和 %-m.nf

%m.nf 和 %-m.nf  以固定的格式输出浮点数。
m指的是 包括小数点 在内的位数,n是指小数点后的位数。
当总的数据位数小于m时,数据左端补零。如果大于m则原样输出整数,小数位跟n参数的大小 来定。

n参数来控制小数点后的位数,最后一位四舍五入。当小数点后的位数大于n时截取
到小数点后的第n位且第n位四舍五入。当n大于6这时输出的数据最后几位会失真,
这是因为浮点数的精度为小数点后后六位。

c语言格式控制参数_第8张图片
如果是%m.0f则不输出小数部分,包括小数点。
c语言格式控制参数_第9张图片

%-m.nf  和   %m.nf的功能一样,不过加了一个数据左对齐,右端补空格。

c语言格式控制参数_第10张图片

(4) %e

%e     以科学计数法输出浮点数

这里补充一下浮点数变科学计数的规则:E或e的前面必须有数,
E或e的后面必须是整数。这里的E或e值的是10

c语言格式控制参数_第11张图片

(5) %le

%le    %le意思是用科学计数法输出的double数据。
其中%l表示双精度数据double,e表示科学计数法,也就是指数形式。

(6) %g

%g   用来输出浮点数,它根据数值的大小自动选f格式(一般的小数格式)或e格式(科学计数法格式)。
它的选择标准为输出时占宽度较小的一种。且%g不输出无意义的0。
如果%g没有指定精度(单纯的%g),采用默认值,输出六位有效。

c语言格式控制参数_第12张图片
== 可以看出默认的有效数字是6位。==
c语言格式控制参数_第13张图片
可以看出%g不会输出无意义的0。

三、字符的格式控制参数

%c

%c          输出单个字符

%s

%s   输出字符串

%m.ns 和 %-m.ns

%m.ns   输出m位的字符从字符串的左端开始截取n位的字符,如果字符的个数大于m则输出全部字符;

在这里插入图片描述
如果n位小于m位,则左端补空格。
在这里插入图片描述
== 如果说n大于m则从字符串的左端开始截取n位的字符。==
在这里插入图片描述
== %-m.ns与%m.ns相比是右端补空格。==

四、其他

%%

%%     输出%

%n

%n用于接受一个uint,代表到%n为止所输入的字符数,其本身不消耗字符
用于 scanf()

c语言格式控制参数_第14张图片

如上图:   1234 共四个字符  将4赋值给b
目前 %n  不经常使用

%0

%0格式控制符,输出数值时指定左面不使用的空位置自动填0

c语言格式控制参数_第15张图片

你可能感兴趣的:(c语言,c语言)