c语言中while(scanf("%d",&x)==1)是什么意思?
4个回答
展开全部
2楼正解,scanf 函数成功调用后会返回读入的数的个数,while(scanf("%d",&x)==1)的意思就是一旦scanf函数读取成功,就继续读取,否则跳出循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2020-07-21
展开全部
scanf("%d",&i)表示输入一个十进制整数,如果成功返回值为1,否则返回值为0
while(scanf("%d",&i)==1)表示,如果scanf()读入成功,while(1=1为真),满足循环条件,可以进入while循环,如果不成功(输入非十进制整数,如字符等),while(0=1为假),不进入while循环。while(scanf("%d",&i)==1)可以多次输入测试数据,避免重复多次运行程序。
while(scanf("%d",&i)!=1)和上面相反,scanf()成功读入,while(1!=1为假),不循环,不成功,while(0!=1),进入循环。while(scanf("%d",&i)!=1)常用于提示用户错误输入。如:
int get_int(void){
int input;
char ch;
while(scanf("%d",&input)!=1)
{
while((ch=getchar(ch)!='\n')
{
putchar(ch);//显示错误输入给用户
}
printf(" 为非十进制整数,请输入十进制整数,例如,8,28,128")
}
return input;
}
while(scanf("%d",&i)==1)表示,如果scanf()读入成功,while(1=1为真),满足循环条件,可以进入while循环,如果不成功(输入非十进制整数,如字符等),while(0=1为假),不进入while循环。while(scanf("%d",&i)==1)可以多次输入测试数据,避免重复多次运行程序。
while(scanf("%d",&i)!=1)和上面相反,scanf()成功读入,while(1!=1为假),不循环,不成功,while(0!=1),进入循环。while(scanf("%d",&i)!=1)常用于提示用户错误输入。如:
int get_int(void){
int input;
char ch;
while(scanf("%d",&input)!=1)
{
while((ch=getchar(ch)!='\n')
{
putchar(ch);//显示错误输入给用户
}
printf(" 为非十进制整数,请输入十进制整数,例如,8,28,128")
}
return input;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里会先执行scanf("%d",&x)也就是输入一个数
然后判断输入数字于1是否相等,不相等就循环,相等就跳出循环
然后判断输入数字于1是否相等,不相等就循环,相等就跳出循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询