黑马程序员——C语言中的printf函数

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一、printf函数介绍

1、printf函数

printf是C语言的标准的输出的库函数,能够以精确的格式输出程序运算的结果
printf的使用格式:printf("格式控制字符串",变量列表)

2、格式字符串

是由格式字符(包括:转换说明符、标志、域宽、精度)和普通字符组成,转换说明符和百分号(%)一起使用,用来说明输出数据的数据类型、标志、长度和精度

3、输出项列表

可以是常量、变量和表达式,也可以没有输出项,这些输出项必须与格式控制字符串在类型和数量上完全对应,否则,结果将不可预测。当有多个输出项时,各个输出项之间用逗号“,”分隔


二、格式控制符使用说明

1、%d说明 

用于输出一个10进制的整数

    //定义整型变量
    int sb=10,sb2=34;   
    printf("sb = %d,%d\n",sb,sb2); //输出结果为:sb = 10,34

2、%f说明

用于输出一个实数类型的数据(不能输出整形的数据)
默认的输出6为小数,如果数据小数部分不足6位,要补零

    //定义一个实数型(单精度)变量
    float f1 = 3.14f;
    printf("f1 =%f\n",f1); //输出结果为:f1 = 3.140000</p>
用%.mf来控制输出的小数点后的位数
    //定义一个实数型(单精度)变量
    float f1 = 3.141590f;
    //只打印小数点后两位
    printf("f1 =%.2f\n",f1); //输出结果为:f1 = 3.14

    //只打印小数点后三位
    printf("f1 =%.3f\n",f1); //输出结果为:f1 = 3.142

用 %m.nf或%-m.nf来控制输出的数字位数和小数点后的位数,其中m表示总的位数(列数),n表示表示小数点后的位数,“-”表示右端补位

    //定义一个实数型(单精度)变量
    float f1 = 3.141590f;
    //只打印小数点后三位
    printf("f1 =%6.3f\n",f1); //输出结果为:f1 =  3.142   其中“ 3.142”一共六位(包含小数点)
    //负号右端补位
    printf("-6.2f\n",2.2); //输出结果为:2.20  ,其中“2.20  ”一共六位             

 

3、其他

  •  %c  输出一个字符
  •  %s  输出一个字符串
  •  %o  把一个数,以八进制的形式输出
  •  %x  把一个数,以16进制的形式输出
  •  %p  输出地址

三、printf函数使用注意

1、%f的输出精度问题

%f打印出来后,float类型精度小数点后6位,有效数字是7位

    //float类型的变量
    float f1 = 3.1415926f;
    //打印7位小数
    printf("f1 = %.7f\n",f1);  //希望输出3.1415926,但实际输出的是3.1415925 

%f打印出来后,double类型精度小数点后6位,有效数字是15位

    //double类型的变量
    double f1 = 3.1415926f;
    //打印7位小数
    printf("f1 = %.7f\n",f1);  //输出的是3.1415926 

2、%md问题(设置域宽问题)  

如果要输出的数的位数 > 域宽m  按照数据的实际位数输出

    printf("%3d\n",1888);
    //输出1888
如果要输出的数的位数 < 域宽m   要补空格
    printf("%-5d\n",10);    //输出_ _ _10   (下划线表示空格)

 

m - 数字,这个数字可以为正,也可以为负:                          

    m > 0  从左侧开始补空白                           

    m < 0  从右侧开始补空白

3、%0md使用注意

%0md表示域宽不足部分补0,是%md的升级版

    //%02d
    for (int i=0; i<20; i++) {
        printf("%02d_",i);
    }
    // 输出结果为01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_16_17_18_19_

4、\t \n \r  \\ %% 转义字符问题

    //printf打印转义字符
    printf("a\nb\n");  //输出结果:a
                       //          b
    printf("a\tb\n");  //输出结果:a   b
    
    printf("\\\n");  //输出结果:\
    printf("%%\n");  //输出结果:%
    
    printf("\"\n");  //输出结果:"
    printf("\'\n");  //输出结果:'
    printf("aaaa\rb\nbb");  //输出结果:aaaa
                            //          b
                            //          bb 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值