c语言中while(scanf("%d",&x)==1)是什么意思?

如题所述

while(scanf("%d",&x)==1)相当于 while(1){scanf("%d",&x)}

就是说只要输入成功就进入循环。然后下一次循环前又先输入;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-17
2楼正解,scanf 函数成功调用后会返回读入的数的个数,while(scanf("%d",&x)==1)的意思就是一旦scanf函数读取成功,就继续读取,否则跳出循环
第2个回答  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;

}
第3个回答  2012-05-17
这里会先执行scanf("%d",&x)也就是输入一个数
然后判断输入数字于1是否相等,不相等就循环,相等就跳出循环

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网