自然人做音频网站违法吗,做破解的网站,新闻标题做的好的网站,建设机械网站案例Scanf函数清除缓冲区之前涉及到scanf会先到缓冲区看看是否存在数据#xff0c;若存在数据#xff0c;就直接拿缓冲区的数据过来使用#xff0c;这就涉及到了一个问题#xff0c;那如果缓冲区的数据不是我想要的呢#xff1f;方法一#xff1a;我们用scanf吸收掉我们的代码…Scanf函数清除缓冲区之前涉及到scanf会先到缓冲区看看是否存在数据若存在数据就直接拿缓冲区的数据过来使用这就涉及到了一个问题那如果缓冲区的数据不是我想要的呢方法一我们用scanf吸收掉我们的代码这样写int main(int argc, const char * argv[]) {printf(请输入一个整数\n);int num1;scanf(%d,num1);printf(请输入一个字符\n);char c;scanf(%c,c);//吸收掉一个回车scanf(%c,c);printf(num1 %d ,c %c\n,num1,c);return 0;}效果如下但是这个方法有一个不好的地方就是若用户输完第一个整数之后会按好几个回车那我们这个方法就不能满足了。方法二我们用rewind(stdin)来清除缓存代码如下int main(int argc, const char * argv[]) {printf(请输入一个整数\n);int num1;scanf(%d,num1);rewind(stdin);printf(请输入一个字符\n);char c;scanf(%c,c);printf(num1%d,c%c\n,num1,c);return 0;}这个有个好处就是当我们输入第一个整数之后整数后面我们可以输入空格tab 都对我们接下来要输入的字符无影响因为我们会清除掉缓存效果如下