while (scanf_s("%d",&num) == 1)
这个循环条件输入正整数都可以进行,为什么输入字母(例如q)就退出循环,char类型不是会自动转换成int类型吗?
请各位父老乡亲看看!
scanf_s("%d",&num)返回的是正确读取的变量个数,输入字母的时候,读取失败,返回0,所以退出循环了。
char虽然能转成int,但是,%d只能读取int类型,不能读取char
%d格式只接受整型,不接受字符类型和浮点类型的。
当输入的不是整数时,scanf_s返回值就是0,所以循环结束