黑马程序员-C语言printf和scanf函数中格式控制符使用小结

时间:2020-11-30 00:25:49
printf:向控制台打印数据
           格式控制符(占位符):
            %d:表示一个十进制整型
                    域宽:%md:表示该数据一共占m列。当m大于该数据所占的位数是,当m为正数时则在左边补空格,若m为负数则
                                          在右边补空格
                                %0md:表示不足的位用0填补
                    范例:
                              int a = 456;
                              printf("a= %4d",a);  //输出_456   ( '_'表示空格)
                              printf("a= %-4d",a); //输出456_
                              printf("a= %2d",a);  //输出456   若m小于该数据所占的位数,则原数输出
                                printf("a= %05d",a);  //输出00456    不足5位用0填补
            %f:表示一个实型(float和double都用其表示)
                    精度控制:%f:默认小数点后保留6位,超出的四舍五入有效数字7位,打印时只能打印实型,不能打印整型
                                            (有效数字指float数据中最多只能表示7个数字,多于7个的数字则无法正确表示)
                                     %.mf:小数点后面保留m位
                                     %mf:域宽:表示这个float型数据一共占m列(包含小数点那一列)
                                     %n.mf:表示小数点后保留m位,并且该数据一共占n列(包含小数点所在那列),若加上小数点钱的数值
                                                   不足n列则在左侧补空格,若多余n列则保留小数点前的数值
                     范例:
                              float  a = 45.4565345f;
                              printf("a= %f",a);     // 输出45.45653 8  小数点后输出6位,但有效数字只有7位,故最后一位不能准确输出
                              printf("a= %.4f",a);  // 输出45.4565 小数点后保留4位
                              printf("a= %.7f",a);  //输出45.45653 685  小数点后输出7位,但有效数字只有7位,故后三位不能准确输出
                              printf("a= %6.2f",a);  // 输出_45.46  ('_'代表空格)
            %c:表示一个字符型
            %s:表示一个字符串
            %o:八进制
            %x:十六进制
            %p:地址
scanf:接收键盘的输入
            工作原理:当用户从键盘输入时先将输入放入内存的输入缓冲区,然后再根据格式控制符依次从输入缓冲中取出对应的值;
                            当输入缓冲中还有格式控制符对应的数据时,再输入该类型的数据时将不提示用户再次输入而是直接将内存缓冲
                            中的值赋给该变量。
            语法:int a = 0; char c = 'a';
                     scanf("%d%c",&a,&c);若格式控制符中出现其他的非格式控制的字符,则要原样输入该字符才能正确的赋值给变量。