-
scanf和printf格式化输入输出中非常实用的小技巧
输入输出几乎是每个C程序必须具备的功能,因为有了它们,程序才有了交互性。C提供的输入输出函数除了具有必须的输入输出功能外,还有一些其他实用的小技巧,了解这些小技巧将会为程序带来更友好的用户体验。
一、printf字段宽度、精度修饰符
当我们要输出类似表格形式的样式时,我们会用到字段宽度修饰符。它能够让printf函数的输出更加规整。我们先看下面的程序:
程序定义了一个容纳20个数字的数组,然后利用两个for循环将20个数字以四行五列的格式进行输出,虽然我们在printf的格式说明符%d的前面已经敲了一个空格,防止了数据紧密地挨着,但是,很难看出这是一个四行五列的格式。这里我们就需要字段宽度修饰符,请看下面修改之后的程序:
可以看到,在%d之间加上字段宽度修饰符,我们的输出变得好看多了,那么,为什么是7呢?因为7代表着输出占用7个宽度的字段,而我们的数字最宽只有6个,所以7就足够让数据分隔开了。默认是按照右对齐的方式排列的,如果想要左对齐,那么只需要再加一个左对齐的标志-即可,如下图:
加了左对齐的标志之后,程序输出就变得非常友好了。这是字段宽度修饰符的作用,字段精度修饰符用于输出小数时的格式化。比如限制小数位数、指定小数以科学计数法显示等。如下图:
从输出来看,第一行是默认输出格式,可以看到默认带有6个小数位;第二行加了.2精度修饰符,限制了小数位为2位,可以看到输出2位小数,并且按照四舍五入进行输出;第三行加了 号标志,它能显示变量的正负号,我们定义的变量是正数,所以显示了一个加号,当然了,如果是负数,默认也是输出负号的;第四行以科学计数法进行输出,指数部分默认是以三位显示,不足三位用0补齐;第四行是限制小数位数的输出。
二、scanf修饰符限制输入位数
在scanf中添加字段宽度修饰符可以限制用户输入的数据宽度,即使用户输入的宽度超过需求,scanf也只会读取指定宽度的数据,请看下面的程序:
可以看到即使用户输入四位数,程序也将按照四位进行读取,不利于程序的稳定运行,但是只要在%d之间加上字段宽度修饰符,不管你输入几位,scanf将只读取前两位数:
加上一个提示和小小的修饰符就能够使得程序更加友好,不用复杂的验证代码,非常有利于简单程序的验证,减小程序体积,提高程序运行效率。这里要注意中文的读取,一个中文占用两个字节位置,所以要限制读取两个中文,要指定宽度修饰符为4,如果是3将只读取一个中文。
三、printf、scanf函数的返回值
有没有想过你经常使用的输入输出函数的返回值问题呢?其实它们都是有返回值的。printf函数返回输出的字节个数,scanf返回成功读取项目的个数,如下图:
标签:- 责任编辑:
-
scanf和printf格式化输入输出中非常实用的小技巧
2019-12-03 10:31:55 -
中国推出的面部识别系统已覆盖国际移动电话和家庭
2019-12-03 04:10:32 -
阿森纳的“偏好”是三位经理荣登榜首
2019-12-03 04:02:27 -
世界艾滋病日:全球有3790万艾滋病毒携带者
2019-12-03 03:05:59 -
Baker Mayfie和039的妻子现在也在追求布朗夫妇
2019-12-03 02:27:26 -
津媒:施蒂利克明年仍将执教 努力让泰达留下巴斯
2019-12-03 01:23:02 -
疯狂的星期五人群向东移
2019-12-03 00:32:39 -
部长敦促老学生支持中等教育的发展
2019-12-02 10:20:09 -
NGO说,AfCF-TA将促进不安全、帝国主义
2019-12-02 10:12:13 -
拉法伊拉桑托斯:6头颅
2019-12-02 09:57:36
相关推荐头条最新闻 Hot-
济南女子神色慌张跑进银行递神秘纸条 柜员趁她不注意直接报警
-
ActionAid Urges Nigera NS T de Mand for Accountabi
-
知情人士:平安壹账通考虑下周在美国IPO
-
普拉多退市 中国硬派越野市场谁最有可能替代它
-
王胜获金麒麟最佳分析师策略研究第二名(附投资观点)
-
王威获金麒麟最佳分析师公用事业第四名(附投资观点)
-
安信马良获金麒麟新锐分析师电子第二 看好两大主线
-
鲍荣富获金麒麟最佳分析师建筑行业第一名(投资观点)
-
2019年「余额不足」,12款有趣的日历推荐。
-
王鹤涛获金麒麟最佳分析师冶金行业第一名(投资观点)
-
倪华获金麒麟新锐分析师零售行业第一名(附投资观点)
-
中印亚东边贸进出口总额持续增长
-
LCD即将凉凉 大厂开始逐步退出角逐
-
5G鎼滅綉璋佹渶蹇細鑽h€€V30 PRO鎼滅綉鑳藉姏瀹炴祴
-
德国“隐形冠军之父”赫尔曼·西蒙:中国隐形冠军企业更偏爱在发展早期IPO
-
细节大不同,官方详解小米CC9 Pro内部结构 福基九龙新城
-
被杀的阿布的丈夫说:“他们总是让我说仇恨的话。”
-
多纳多尼:最后一场为尊严而战 我会继续执教深足
-
最后一战贝帅如何调整 取胜成收官战唯一选择
-
魅族“双11”颜值狂欢购火热进行中 蝴蝶少女歌词分配
-
PHP实现微信扫码自动登陆与注册,参考实例
-
奈杰里娅在4年内失去了5万亿欧元
-
为什么尼日利亚教育课程不适合性别-Ndii Nwuneli
-
鏈楅€告渶澶х殑闊╃郴瀵规墜鏉ヤ簡 娌硅€椾粎5L 11涓囬鐖嗭紒
-
阿森纳在18个月后解雇埃莫里
-
景顺长城鑫月薪定期支付债券型证券投资基金份额支付公告
-
苏州赛腾精密电子股份有限公司发行可转换债券、股份及支付现金购买资产并募集配套资金事宜进展公告
-
北京翠微大厦股份有限公司关于延期回复上海证券交易所问询函的公告
-
多措并举简政放权 公募发展轻装上阵
-
深交所:主动对接地方需求 做强做优“服务周”品牌
