scanf函数

Scanf函数返回值:返回读入的项目的个数,如果没有读入项目就返回0,如果检测到文件尾返回EOF

对于%d读入时:跳过空白符,换行符,制表符。如果遇到+ /-/数字字符。就读入该字符并往下读,直到遇到一个非数字字符。将这个非数字的字符放回缓冲中去。下一次scanf函数就从那个字符开始读取。如果使用了字段宽度,那么scanf在第一个空白字符处或字段宽度(二者先到达的地方停止读入)

如果第一个非空白字符不是数字字符那么scanf就会把读到的字符放回缓冲中,没有赋给对应的变量任何东西。以后再用scanf时如果只有%d格式符,那么就会死在那里(结束那次scanf函数的执行)。

如果在执行scanf函数时从键盘敲入的是一个数字字符,但是格式符是%c,那么程序会把第一个数字的每一位当成一个字符来处理。

%x%f会让scanf可以识别小数点,和a - f的字符当成数字字符

 

 

%s格式符把空白字符以外的所有的字符读入,必须存到一个数组中,会在所有的一个数组元素的后面一个单元里面放入一个‘\0’字符。如果包括字段宽度,那么一个格式符控制,读到字段宽度处或第一个空白字符处。

 

%c格式符会把所有的字符同等看待,空白符也当成一个普通字符处理,读到任何一个字符(包括换行符,空白字符等)赋给一个变量。

 

一般scanf用在输入数字,或所有格式符混合使用的情况下。

 

求两个数的平均数的最好写法:

(middle  =  left+right-left>>1 ) (对int类型数据,运算范围是 231-1) 当运算的两个数都非常大的时候,可以避免寄存器中的数据溢出。

如果写成(middle  = left+middle/2)最大范围要比前一种方法是1/2.

posted @ 2014-03-03 10:50  world——hello  阅读(243)  评论(0编辑  收藏  举报