while(scanf("%d",&i)==1)表是什么含义
8条回答 默认 最新
爱晚乏客游 2021-05-22 22:07关注为什么一群人都回答错误,这和i有什么关系。
scanf("%d %d",&a,&b);函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a读取失败,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。
scanf函数的返回值主要是用来判断输入是否正确的。正确的一个输入返回1,否则返回0.所以整句话就是先判断输入是否为整形数字,不是为整数返回值是0.和1不相等,也就是不会进入while循环里面。而输入是整数的话,则会进入while。写个简单的测试程序就知道了。
int main(){ int a; while(scanf("%d",&a)==1){ printf("###"); } return 0; }评论 打赏 举报解决 22无用 1