c语言清除缓冲区的数据?
#include<stdio.h>main(){inta,b,max,ret;printf("Inputa,b:");ret=scanf("%d,%d",&a,&b);w...
#include <stdio.h>
main()
{
int a,b,max,ret;
printf("Input a,b:");
ret = scanf("%d,%d",&a,&b);
while (ret!=2)
{
while(getchar()!='n');
printf("Input a ,b:");
ret = scanf("%d,%d",&a,&b);
}
max =a >b? a:b;
printf("max = %d\n",max);
}
其中第二个while循环什么作用?
while(getchar()!='n');
printf("Input a ,b:");
ret = scanf("%d,%d",&a,&b);
怎么清除的缓冲区中的错误数据?
对不起打错了··第二个循环 ·while(getchar()!='\n');
是怎么回事? 展开
main()
{
int a,b,max,ret;
printf("Input a,b:");
ret = scanf("%d,%d",&a,&b);
while (ret!=2)
{
while(getchar()!='n');
printf("Input a ,b:");
ret = scanf("%d,%d",&a,&b);
}
max =a >b? a:b;
printf("max = %d\n",max);
}
其中第二个while循环什么作用?
while(getchar()!='n');
printf("Input a ,b:");
ret = scanf("%d,%d",&a,&b);
怎么清除的缓冲区中的错误数据?
对不起打错了··第二个循环 ·while(getchar()!='\n');
是怎么回事? 展开
6个回答
展开全部
要想实现a,b的输入,先要打个回车确认后再给A,B赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(getchar()!='n'); //空循环,仅当输入n时跳出。重新输入ab前需要敲一个'n'确认
输入缓冲区不需要清除。输出的不能清除
输入缓冲区不需要清除。输出的不能清除
追问
对不起打错了··第二个循环 ·while(getchar()!='\n');
是怎么回事?
追答
重新输入ab前需要敲一个'\n'(回车)确认
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
仅当输入n时跳出。重新输入ab前需要敲一个'n'确认。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'\n'是回车,
while(getchar()!='\n')就是说, 输入的字符不是 回车 就进入循环
while(getchar()!='\n')就是说, 输入的字符不是 回车 就进入循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询