栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

关于scanf清除缓冲区

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于scanf清除缓冲区

今天写到scanf突然发现缓冲区输入不定时,对于清除缓冲区很麻烦,

而去网上查了几种效果也不是很理想,自己综合网上的方法写了一个

如果单独使用getchar()函数一次只能清除一个,但是对于输入不定的情况而言虽然能用但是不是很理想,所以要和循环配套使用,而循环的使用需要结束条件,此时条件为

getchar()!='n'

即可,故,整体为

float a=0;	
for(;;)
	{
		printf("Enter :");
		scanf("%f",&a);
		if(getchar()!='n')
		{
			while(getchar()!='n')
			continue;
			printf("Invalid Number!n");
			continue;
		}
    }

这种强制输入一个float,如果输入的不是一个数字形式,就会强制清除掉然后要求重新输入

这个是我代码的一部分,并不是全部所以这段单独运行起来的话是死循环,可以在出if后在续写,适量填充即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529289.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号