C语言基础系列- %占位符知识04

来源:互联网 发布:移动和网络怎么没信号 编辑:程序博客网 时间:2024/05/25 08:14

1.printf函数的介绍

    printf是C语言中进行格式化输出的函数,函数的声明在stdio.h文件中,所以如果想使用printf函数就必须要包含stdio.h文件。

    printf函数调用的一般形式为:

         printf(“格式控制字符串”, 输出表列)

       其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输        出数据的类型、形式、长度、小数位数等。


   函数的定义

    int printf(const char *format,[argument]); //返回值是int类型。

2.%占位符

  2.1 format输出格式  

        format 参数输出的格式,定义格式为:%[flags][width][.perc][F|N|h|l]type

       2.1.1 type 规定了输入的数据类型

           d有符号10进制整数

           i有符号10进制整数

           o无符号8进制整数

           u无符号10进制整数

           x 无符号的16进制数字,并以小写abcdef表示

          X无符号的16进制数字,并以大写ABCDEF表示

          f 浮点数

          E/e用科学表示格式的浮点数

          g 使用%f%e表示中的总的位数表示最短的来表示浮点数

         G g格式,但表示为指数

         c 单个字符   

         s字符串

         wchar_t 宽字符类型字符串

         %显示百分号本身

         p显示一个指针

     *:取指针里地址指向的地方的值,&:取改值存储位置的地址值

 

     2.1.2 flags:规定输出格式

     取值和含义如下:

           右对齐,左边填充0和空格

         -左对齐,右边填充空格

        +在数字前增加符号 +

        0将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-

       空格输出值为正时冠以空格,为负时冠以负号

       # type=c,s,d,i,u时没有影响

          type=o,x,X时,分别在数值前增加'0',"0x","0X"

          type=e,E,f时,总是使用小数点type=g,G时,除了数值为0外总是显示小数点


         比如:printf("%-2d",3); 这条语句,在之间,-NN表示输出的数字的宽度,如果不够就用空格补齐右边

  

    2.1.3 width :用于控制显示数值的宽度

           n(n=1,2,3...) 宽度至少为n位,不够以空格填充0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充

  

    2.1.4 prec 用于控制小数点后面的位数

          0 type=d,i,o,u,x时,没有影响

           type=e,E,f时,不显示小数点n(n=1,2,3...) 

          type=e,E,f时表示的最大小数位数

           type=其他,表示显示的最大宽度

 格式化字符串的本质就是告诉计算机从保存变量的内存中读取多少位的数据,并按照某种格式去解析数据。

原创粉丝点击