Code Bye

输入错误格式的内容,编译器怎么处理

C中
int num;
scanf(“%d”,&num);
假如输入的是错误数据类型,例如字符或字符串,编译器内部处理过程是怎么的?不会赋值给num,那输入的内容怎么处理呢?
解决方案

10

引用:

运行期,不是编译器的问题了
要看scanf这个函数具体怎么实现了

假如scanf函数是你编写的,假如输入错误,你默认给个0或0xffff也是随你的,不过当然要符合常理。

20

假如输入了非法数据,键盘缓冲区就可能还有残余信息。
当使用scanf函数时,假如遇到一些匪夷所思的问题,在scanf函数后正确使用fflush(stdin);,清空输入缓冲区,可以解决很多问题。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明输入错误格式的内容,编译器怎么处理