C语言中gets(),scanf(),getchar()的区别
来源:互联网 发布:mac网站老是跳转 编辑:程序博客网 时间:2024/05/22 10:22
scanf()和gets的区别大致有着几条:
1.scanf() 会忽略行开头的所有空格,并以空格、换行符结束输入;
使用getchar()读取scanf语句执行后,缓冲区留下的换行符,
gets读入以任何字符开始的字符串,以换行符结束,但之后会丢弃换行符并以'\0'代替;
2. 在数据大量的情况下,用gets读取快于scanf()10倍以上(注:来自pudn,只有一段开头话)
3.
第一:要注意不同的函数是否接受空格符、是否舍弃最后的回车符的问题!
读取字符时:
scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中);
getchar()以Enter结束输入,也不会舍弃最后的回车符;
读取字符串时:
scanf()以Space、Enter、Tab结束一次输入
gets()以Enter结束输入(空格不结束),接受空格,会舍弃最后的回车符!
第二:为了避免出现上述问题,必须要清空缓冲区的残留数据,可以用以下的方法解决:
方法1:C语言里提供了函数清空缓冲区,只要在读数据之前先清空缓冲区就没问题了!
这个函数是fflush(stdin)。
方法2:自己取出缓冲区里的残留数据。
(说实话这个语句我也没看懂,呵呵!为什么格式控制是这样的!希望高手指点一下!)
scanf("%[^\n]",string);
0 0
- C语言中gets(),scanf(),getchar()的区别
- C语言中getchar,gets,scanf的区别
- C语言中 scanf gets getchar 的区别
- C语言中scanf、getchar、gets函数的比较
- C语言中printf,scanf,getchar , puts,gets 的使用及区别
- C gets()、scanf和getchar()的区别
- scanf()、gets()、getchar()的区别
- scanf getchar gets 的区别
- C语言中,保证输入输出的正确:scanf(),scanf_s(), gets(), getchar()
- C语言中scanf和gets的区别
- C语言中scanf、gets、fgets的区别
- C语言中gets()和scanf()的区别
- C语言中getchar()、gets()和scanf()的特点以及scanf产生的多余回车符问题
- C语言scanf与gets的区别
- C语言scanf()和gets()的区别
- scanf()、getchar()、gets()、cin之间的区别
- scanf()、getchar()、gets()、cin之间的区别
- scanf()、getchar()、gets()、cin之间的区别
- 多进程情况下文件句柄共享的问题
- Android开发之Activity的启动模式
- stuts学习(四)深入学习
- 对无界财富这样新兴的P2B平台保障资金安全的看法
- 安卓开发遇到项目无法运行提示有错误有红叉但是找不到错误定位的情况
- C语言中gets(),scanf(),getchar()的区别
- iOS-Xcode开发常用插件
- VC EDIT
- 关于从txt文件读取字符,怎么过滤空格,回车,换行符等。
- struts2学习(二)struts.xml配置
- 万达商业“以售养租”的救赎 王健林将轻重并举淘宝万达商业“以售养租”的救赎 王健林将轻重并举
- 德玛西亚什么样?英雄联盟各城邦原画淘宝德玛西亚什么样?英雄联盟各城邦原画
- IOS 数据存储(preference和settings bundle)
- 王健林卖关子背后:O2O才是未来淘宝王健林卖关子背后:O2O才是未来