c语言while循环和SCANF问题

2025年03月22日 06:54
有1个网友回答
网友(1):

在第二个循环输入字母 导致第二个循环获取出错

但这个字母 并不会被第二循环的scanf读取

所以 到第一循环 也就是外循环 还是会读到这个字母的。 

解决方法 就是在出错的时候,把出错字母读走。 或者干脆读走一行。 

int main()

int a, b;
while(scanf("%d",&a)==1)
{
printf("ok1!\n");
while (scanf("%d", &b) == 1)
{
printf("ok2!\n");
}
getchar();//读走出错字母。 或者读一行,改成while(getchar()!='\n');
printf("ok3!\n");

}

return 0;
}