也谈谈scanf 用法(寒假c语言之一)

来源:互联网 发布:学粤语软件哪个软件好 编辑:程序博客网 时间:2024/05/16 14:24

 今天把老师安排的要写书的程序拿出来看了看 前几章很简单  就随便写了一个 小程序也就是判断一下输入的字符,然后输出结果,

当我用scanf接受输入的字符时却发现 当我接收第一个字符后后面的字符都不能正常的接受,后来查过资料才发现 很多系统对scanf函数处理都有漏洞, 当你输入几个变量后 可能输入缓冲区不会被清除 这样就不会出现再有提示你输入字符了 解决方法很简单 只要在每次输入结束后 加上fflush(stdin) 就可以清除缓冲,注意这时要加上头文件 stdio.h,

作为一个好学的银 我又继续看了一下网上其他关于scanf函数的讲解 有几篇写的不错 可以看一下

http://dev.csdn.net/article/21/21680.shtm

 

主要的就是对缓冲区的处理带来的问题 以及 用其读字符串使用【】控制字符的高级应用(好用),还有就是下面几个:

 如果格式控制串中有非格式字符则输入时也要输入该非格式字符 也就是说当你在scanf中有,=号这些非格式字符时在你输入过程中你也要输入他们。

在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。 就是说当你连续输入几个字符串时如果格式控制串中没有,空格的话 则在你输入这些字符时注意连续输入

可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

scanf没有精度控制,使用地址接受

scanf函数执行成功时的返回
值为成功读取的变量数,如果第一个变量的读取即告失败则返回值为0.

撇开scanf的种种缺点 系统漏洞较多,麻烦之外,有些特殊情况下使用一些特殊的特性还是很有效果的!

 

原创粉丝点击