本人认为数据处理是非常重要的,如果能在输入时候进行处理会省下很多事情。
关于scanf这里整理了一下:
1:从scanf()角度看输入
如果使用%d说明符,scanf()函数开始每次读取一个输入字符,它跳过空白字符(空格,制表符和换行符)直到遇到一个非空白字符,并持续读取和保存字符直到它遇到一个非数字的字符。
如果使用%s说明符,那么空白字符以外的所有字符都是可接受的,所以scanf()跳过空白字符直到遇到第一个非空白字符,然后保存再次遇到空白字符之前的所有非空白字符。这就意味着%s使scanf()读取一个单词。scanf()在字段的结尾或者第一个空白字符处停止(比如"%10s"如果输入I am happy那么读取到的就是只有一个单词"I",而不是10个字符的长度,尽管字段宽度是10)。最后一点:当scan()把字符串放在一个指定的数组中时,它添加终止的'\0'使得数组内容成为一个C字符串。
如果使用%c说明符,那么所有的输入字符都是平等的。如果下一个输入字符是一个空格或者换行符,将会把这个空格或换行符赋给指定的变量;不会跳过空白字符。</