gets scanf以及缓冲区域的问题

1:scanf

  scanf会忽略开头所有的空格,并以Space Enter Tab 结束输入,

  不会舍弃最后的回车符(即回车符会残存在缓冲区域中)

2:getchar

  getchar以Enter结束,

  也不会舍弃最后的换行符

  getchar可以读取scanf之后留在缓冲区域留下的换行符

  也就是说用getchar和scanf读取数据之后缓冲区域会留下换行符,但是用gets读取之后缓冲区域不会留下换行符

3:gets

  读取以任何字符开头的字符串,

  以换行符结束,但是最后会舍弃换行符并以''代替

  

需要特别特别注意的是,如果一行中出现多个数据,千万不要用gets,因为gets到这行结束之后才结束

 

原文地址:https://www.cnblogs.com/rain-1/p/5021371.html