关于gets读入因为缓冲区出现的问题
作者:互联网
今天被一个同学丢了代码求debug
然后发现bug挺有意思的,稍微记录一下
首先我们读入的东西都会被丢进缓冲区等待接收,比如abc\n,如果你使用scanf读入的话,它在读入到\n的时候就会提取它需要的东西了,但是它会给你留一个\n
那么如果现在你突然想用gets读一行字符串,问题就来了
你的\n会被当做gets的终止读入,然后你就读不了了
解决方法是
1.getchar(),把这个\n给清掉
2.fflush(stdin);清空缓冲区
标签:清掉,读入,缓冲区,fflush,gets,getchar 来源: https://www.cnblogs.com/cminus/p/11967576.html