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

本文总结了C语言中的printf和scanf函数中常用的格式控制符,包括%d、%f、%c、%s、%o、%x、%p等,详细解释了域宽、精度控制等概念,并通过实例展示了各种格式控制符的使用效果。
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.456538  小数点后输出6位,但有效数字只有7位,故最后一位不能准确输出
                              printf("a= %.4f",a);  //输出45.4565 小数点后保留4位
                              printf("a= %.7f",a);  //输出45.45653685  小数点后输出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);若格式控制符中出现其他的非格式控制的字符,则要原样输入该字符才能正确的赋值给变量。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值