为啥不能判断数据输入是否正确?
C语言程序部分代码如下:scanf("%d", &i);//这里一旦输入错就不让再次输入了怎么回事?
for( ; i < 1 || i > 7 || use == 0; )
{
printf("输入错误, 请重新输入: ");
scanf("%d", &i);
}//for循环结束
我试过用getch(), 但是貌似不行, 怎么说呢, 比如我输入一个a, 它就会一直输出"输入错误, 请重新输入:", 满屏都是 因为'a'不是int,所以一直都在缓存里,scanf函数一直取不着int类型的值,死循环
scanf("%d", &i);//这里一旦输入错就不让再次输入了怎么回事?
for( ; i < 1 || i > 7 || use == 0; )
{
printf("输入错误, 请重新输入: ");
fflash(stdin);//清除输入缓存
scanf("%d", &i);
}//for循环结束 本帖最后由 铭凡 于 2022-12-8 18:39 编辑
jhq999 发表于 2022-12-8 18:18
因为'a'不是int,所以一直都在缓存里,scanf函数一直取不着int类型的值,死循环
谢谢!
这里刚才我编译的时候,有报错,我查了一下函数大全https://fishc.com.cn/forum.php?mod=viewthread&tid=66397&extra=page%3D1%26filter%3Dtypeid%26typeid%3D583
这个写的应该是fflush吧,还是说我头文件引用错了? 铭凡 发表于 2022-12-8 18:35
谢谢!
这里刚才我编译的时候,有报错,我查了一下函数大全https://fishc.com.cn/forum.php?mod=vie ...
鄙人英语废,见谅{:10_282:}
页:
[1]