c语言:关于scanf()语句与while循环的问题
2个回答
展开全部
三点:
1.
scanf从缓冲区读取:你输入的字符串会保存在一个缓冲区内,scanf在正确的时候是到这个缓冲区中读取字符,并且从缓冲区中删除字符。但如果是%d格式碰到了字母,则不会读取也不会删除,之后abc还在缓冲区内。
2.
scanf不停止:如果缓冲区内有内容,scanf是不会停下来等你输入的,因为abc一直在缓冲区内,所以造成了一直不停重复循环。
3.
scanf的返回值:scanf如果成功返回的是输入的个数,当你输入abc的时候,scanf失败,返回0,则条件一直成立,所以造成了死循环
1.
scanf从缓冲区读取:你输入的字符串会保存在一个缓冲区内,scanf在正确的时候是到这个缓冲区中读取字符,并且从缓冲区中删除字符。但如果是%d格式碰到了字母,则不会读取也不会删除,之后abc还在缓冲区内。
2.
scanf不停止:如果缓冲区内有内容,scanf是不会停下来等你输入的,因为abc一直在缓冲区内,所以造成了一直不停重复循环。
3.
scanf的返回值:scanf如果成功返回的是输入的个数,当你输入abc的时候,scanf失败,返回0,则条件一直成立,所以造成了死循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询