puts() 和 scanf() 区别大吗
来源:互联网 发布:开淘宝店页面图片 编辑:程序博客网 时间:2024/04/29 12:45
之前从来没感觉有区别,可是自从做了【51nod】1384 全排列 发现在输出的数据量大的时候区别还是挺明显的。在输出字符串时,发现用puts(s)判了是45ms 而用scanf(“%s\n”,s)却是921ms 用for(i 0 to len)printf(“%c”,s[i]) 就超时了。显然puts()效率高很多,至于为什么呢?
有些打印函数的额外开销比别的打印函数要多。“额外开销”是指与其它函数相比,某个函数必须做的额外工作。例如,printf()的额外开销就比puts()多。
puts()函数是很简单的,它接受一个字符串并把它写到显示器屏幕上。当然,printf()函数也能做同样的工作,但它还要做大量其它的工作——它要分析送给它的字符串,以找出指示如何打印内部数据的那部分特殊代码。
也许你的程序中没有特殊字符,而且你也没有传递任何这样的字符,但不幸的是,printf()无法知道这一点,它每次都必须检查字符串中是否有特殊字符。
函数putch()和puts()之间也有一点微小的差别——在只打印单个字符时,putch()的效果更好(额外开销更少)。
参考文章 http://c.biancheng.net/cpp/html/1663.html
0 0
- puts() 和 scanf() 区别大吗
- scanf(),printf()和gets(),puts()的区别
- gets puts printf scanf 区别
- scanf()和gets()及printf()和puts()
- C语言scanf()和gets()及printf()和puts()的区别
- C语言scanf()和gets()及printf()和puts()的区别
- C语言scanf()和gets()及printf()和puts()的区别
- C语言scanf()和gets()及printf()和puts()的区别
- C语言scanf()和gets()及printf()和puts()的区别
- scanf(),printf()和gets(),puts()在输入输出字符串时的区别
- 在输入输出字符串时scanf(),printf()和gets(),puts()的区别浅谈
- scanf(),printf()和gets(),puts()在输入输出字符串时的区别
- scanf(),printf()和gets(),puts()在输入输出字符串时的区别
- scanf(),printf()和gets(),puts()在输入输出字符串时的区别
- scanf(),printf()和gets(),puts()在输入输出字符串时的区别
- scanf(),printf()和gets(),puts()在输入输出字符串时的区别
- 在输入输出字符串时scanf(),printf()和gets(),puts()的区别浅谈
- puts 和printf 的区别
- [LeetCode]200. Number of Islands
- Android 自定义控件--横向柱状图
- 遗传算法入门到掌握(一)
- RunLoop总结:RunLoop的应用场景(五)
- 我是大神,我却行走在大神的路上
- puts() 和 scanf() 区别大吗
- git fetch的使用介绍
- 十大绝招快速提高微信公众号图文消息阅读量
- SQL学习与练习
- SAP ABAP程序优化(我也来谈谈程序优化)
- cocos2d-x-3.13 cpp-tests项目 eclipse 编译
- 【Fragment】fragment之间的切换,add、show、hide
- 字节流-输入字节流-FileInputStream
- tesseract 训练 + 识别