猿问

C/C++如何判断用户输入是否合法?

inta;
scanf("%d",&a);
cin>>a;
ex:我想让用户输入整数,但是如果用户输入的不是我想要的类型如!%$#,abcd....都有什么方法或者函数去判断呢?
慕田峪9158850
浏览 954回答 2
2回答

呼唤远方

scanf的返回值是正常读取量的数目,所以只要判断返回值即可。if(scanf("%d",&a)==1)printf("OK!");elseprintf("Failedtoreadaninteger.");但scanf比较大的一个坑是其遇到无效字符会停止扫描并将无效字符留在缓冲区中,所以会一直检测到失败,进入死循环。遇到这种问题,可以使用如下方案解决:inta;while(1!=scanf("%d",&a)){fflush(stdin);//刷新缓冲区cout
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答