1.scanf
scanf在获取数据时,以空格,tab键和回车作为数据间隔的标志;
在scanf每一个格式符都获取到数据的情况下,回车是scanf输入结束的标志
如果有格式符没有获取到数据,回车是scanf数据间隔的标志
在字符串之前输入空格的话,scanf也不会接收;
scanf是一个严格控制格式的函数,双引号内的格式符是什么格式, 终端输入就是什么格式 (如果双引号内有',',终端输入也要有',')
scanf不会吸收空格;
scanf接收%c的时候或者gets函数接收字符串的时候,如果前一个按键是回车,都会产生垃圾字符
注:gets语句虽然不会从终端吸收最后一个回车,但是gets语句的最后一个回车不会被当做垃圾字符流下去,而使用scanf的时候,回车才会当做垃圾字符流下去
注:scanf和gets都不会从终端吸收最后一个回车,但是fgets会从终端吸收最后一个回车,所以最好需要在fgets后替换一下最后的\n为\0
fgetc和getchar同样需要吸收垃圾字符