<03>printf函数介绍及常见用法+%f输出精度问题+printf函数使用注意事项

printf函数介绍及常见用法:

  1、printf是C语言的标准的输出的库函数

 

        使用printf的时候,尽量包含一个头文件 "stdio.h"(如果不包含,则会出现警告)

 

   2、printf的使用格式:

 

       printf("格式控制字符串",变量列表);

 

   3、格式控制符

 

      %d   输出一个10进制的整数

      %f    输出一个实数类型的数据(不能输出整形的数据)

              默认的输出6位小数,如果数据小数部分不足6位,要补零

  

              %m.nf

 

             m表示总的位数(列数)

             n表示表示小数点后的位数

 

      %c   输出一个字符

 

      %s   输出一个字符串

 

      %o   把一个数,以八进制的形式输出

 

      %x   把一个数,以16进制的形式输出

 

      %p   输出地址

 

 1 #include <stdio.h>

 2 

 3 int main(int argc, const char * argv[]) {

 4     

 5     //定义一个整型变量

 6     int sb=10,sb2=34;

 7     

 8     printf("sb = %d,%d\n",sb,sb2);

 9     

10     //定义一个实数型(单精度)变量

11     float f1 = 3.14159f;

12     printf("f1 = %f\n",f1);

13     

14     //只打印小数点后两位

15     printf("f1 = %.2f\n",f1);

16     

17     //%m.n格式 ,前面

18     printf("%4.3f\n",f1);

19     printf("%5.3f\n",f1);

20     printf("%6.3f\n",f1);

21     printf("%7.3f\n",f1);

22     //定义一个字符型变量

23     char  ch = 'a';

24      printf("ch = %c\n",ch);

25     

26     return 0;

27 }
sb = 10,34

f1 = 3.141590

f1 = 3.14

3.142

3.142

 3.142

  3.142

ch = a

 保证小数位的前提下,也保证有效位数输出,前面补零

 

 

 -----------------------------------------------------

 %f输出精度问题

 1 #include <stdio.h>

 2 

 3 int main(int argc, const char * argv[]) {

 4     

 5     //float类型的变量

 6     float f1 = 3.1415926f;

 7     //默认输出6位小数

 8     printf("f1 = %f\n",f1);

 9     //打印7位小数

10     printf("f1 = %.7f\n",f1);

11     //注意:%f打印出来后,float类型精度小数点后6位,有效数字是7位,因为float的有效数字只有七位

12     //所以就不能保证第八位数字的输出,所以第八位有效数字会失真

13     

14    

15     //要打印3.1415926到底怎么破

16     double d1 = 3.1415926;

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

18     printf("d1 = %.7f\n",d1);

19     

20    

21     

22     float a = 11111.111111f;

23     float b = 22222.222222f;

24     printf("a+b = %f\n",a+b);

25     

26     

27     double a1 =1.1111111111;

28     double b1 =2.2222222222;

29     d1 = a1+b1;

30     

31     

32     printf("a1+b1 d1 = %.10f",d1);

33     

34     

35     return 0;

36 }
f1 = 3.141593

f1 = 3.1415925

d1 = 3.1415926

a+b = 33333.335938

a1+b1 d1 = 3.3333333333

小数都用%f表示,输出看有效位

---------------------------------------------------

printf使用注意事项

 

    1) %md问题(设置域宽问题)

 

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

 

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

         printf("%3d",1888);

 

         如果要输出的数的位数 < 域宽m   要补空格

        

                            m > 0  从左侧开始补空白

                            m < 0  从右侧开始补空白

 

    2)%0md使用注意

 

        %0md表示  不足部分补0

 

    3) \t 一个字表位  \n     \\ %%  打印\ %   转义字符问题

 

 1 #include <stdio.h>

 2 

 3 int main(int argc, const char * argv[]) {

 4     

 5     //如果要输出的数的位数 < 域宽m   要不空格

 6     printf("%-5d\n",10);

 7     printf("%5d\n",10);

 8     

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

10     printf("%3d\n",1888);

11     printf("\n");

12     

13     //%02d

14     for (int i=0; i<15; i++) {

15         printf("%02d\n",i);

16     }

17     

18     printf("\n");

19     

20     //printf打印转义字符

21     printf("a\nb\n");

22     printf("a\tb\n");

23     

24     printf("\\\n");

25     printf("%%\n");

26     

27     

28     printf("\"\n");

29     printf("\'\n");

30     

31     return 0;

32 }
10   

   10

1888



00

01

02

03

04

05

06

07

08

09

10

11

12

13

14



a

b

a    b

\

%

"

'

 

你可能感兴趣的:(printf)