黑马程序员—c语言基础—Printf函数的介绍以及注意事项

时间:2022-01-15 00:25:49
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

、Printf的函数的介绍和注意事项

1、printf函数的介绍

    printf是一个标准的库函数(系统提供的函数),可以以精确的格式输出程序运算的结果。
     printf函数的调用格式:printf("格式控制字符串",输出列表)
     例如:printf("%d,%d",a,b); 
     使用printf尽量包含一个头文件"stdio.h",若不包含则会出现警告。
 
     格式字符串(格式控制符):
     是由格式字符和普通字符组成,转换说明字符和%一起使用,用来说明输出数据的类型、标志、长度和精度。
     
     输入项列表:
     可以是常量、变量和表达式,也可以无输出。多个输出项用“,”隔开,而且输出项必须与格式字符串类型和数量上完全一一对应。
     
     格式控制符:
     %d            表示输出一个10进制的整数    
     %f             表示输出一个实数类型的数据        注意:%f默认输出6位小数,若小数部分不足6位,补0。
     %m.nf      m表示总的列数,n表示小数点后的位数,若输出的位数小于m从左边补空格
      %-m.nf    表示若输出的位数小于m,从 右边补空格    
     %c            表示输出一个字符
     %s            表示输出一个字符串
     %o            表示把一个数据以8进制输出
     %x            表示把一个数据以16进制输出  
     %p            输出变量的地址
     例如:部分配图解释
#include <stdio.h>

int   main(int argc,const char  *  argc[ ]){
//定义一个整型变量
int a=10;
printf("a=%d\n",a)
//定义一个实数类型(单精度)变量
float    f1=3.14159f;
printf("f1=%f\n",f1)//%f默认输出6位小数,若小数部分不足6位,补0,具体可见下面的插图1

黑马程序员—c语言基础—Printf函数的介绍以及注意事项
图 1

//若只要求打印2位小数输出结果可见图2
printf("f1=%.2f\n",f1)

黑马程序员—c语言基础—Printf函数的介绍以及注意事项
图 2


//打印一个m.nf%的格式,如 一个总共6列,小数点后3位的数据,具体输出结果可见图 3
float    f1=3.1415926f;
printf("f1=%6.3f\n",f1);
黑马程序员—c语言基础—Printf函数的介绍以及注意事项

图 3

//定义一个字符变量   
char    ch='a';
printf("ch=%c\n",ch)
return   0;

这里重点介绍下%f的精度问题:
例如:
#include<stdio.h>

int main(int    argc,  const   char  *  argc[ ])   {
   
         //float类型的变量
         float     f1=3.1415926f;
         //默认输出6位小数
         printf("f1= %f\n",f1);
         //打印7位小数
         printf("f1=%.7\n",f1);//注意:打印出来后,精度小数点后6位,有效数字是7位

         return  0;
         }
 输出结果见图 4 :
黑马程序员—c语言基础—Printf函数的介绍以及注意事项
图 4
#include <stdio.h>

int main(int    argc,  const   char  *  argc[ ])   {
   
         //float类型的变量
         float     f1=3.1415926f;
         //要打印3.1415926到底怎么破????
         double   d1=3.1415926;
         //double打印出来后,double类型精度小数点后6位,有效数字是15位,故想要保留更多数位可用double类型
         printf("d1=%.7f\n
",d1);
         return  0;
         }
输出结果见图 5 :
黑马程序员—c语言基础—Printf函数的介绍以及注意事项
图 5

二、printf函数使用注意事项

1、域宽问题

%d  的拓展
1)%md:设置域宽问题,m的绝对值表示域宽,m可以是正数也可以是负数。
        若输出的位数大于m,则按照数据实际位数输出
        若输出的位数小于m的绝对值,m大于0时,则从输出的左侧开始补空白
                                                                   m小于0时,则从输出的右侧补空白
2)%0md(%md的升级版):表示不足部分补0      常用
3)\t   \n   \r   \\   %%  转义字符的问题
      


#include <stdio.h>

int main(int    argc,  const   char  *  argc[ ])   {
      //域宽小于m, m大于0,输出的左侧补空格
       printf(%5d\n,10);//结果结果从左侧补3个空格
      //若输出的位数大于m,则按照数据实际位数输出
      printf(%3d\n,1888);//输出结果就是1888
      // m小于0时,则从输出的右侧补空格
      printf(%-5d\n,10);//输出结果为10右边加三个空格

      转义字符的打印效果见图 6 :
      黑马程序员—c语言基础—Printf函数的介绍以及注意事项
图 6