今日学习又对以前学的c语言一些细节产生了疑问,遂上网查找资料总结出自己经验如下
gets()函数的话是吸收一个字符串,回车键结束,并且自动将回车键吸收变成\0加在字符串后面;
而scanf()函数是按下回车时,发送缓存区的字符就被发送出去,此时回车会留在缓存区,所以有些场合会需要说用一个getchar()来吸收掉空格。
比方说连续用两次scanf,那么在第二次scanf之前应该用一个getchar()来吸收掉上一个scanf在缓存区留下来的\n(回车键),否则第二个scanf还没开始输入就已经结束了。
另外感觉这个问题也不是很有深究的必要,还是进一步学习然后实际中遇到了问题再来吧,实在有很多点搞不懂,
1、比如为什么遇到回车键就停下来?
这个问题好像是因为scanf在读数字的话那么遇到空格、制表符、换行符就会停下来
2、回车键不是代表\r吗怎么又变成\n了?
这个问题好像是因为\r是叫做回车,但是跟键盘上我们经常叫的回车键并不一样,键盘上的回车键作用是换行,所以是\n