关于scanf(“%*s”)
在学习c primer plus时,9.10中有一个menu函数,
…………
while((status=scanf("%d",&code))!=1||(code<1||code>5)){
if(status!=1)
scanf("%*s");
printf("abab\n");
printf("…………")
}
…………
其中scanf("%*s");
为处理非整数输入。
但我认为它并不能完全处理。
因为输入小数时scanf("%d",&code)
,只会将将小数点前的数输入,小数点及小数部分仍在缓存区。
所以整数部分正常输入,status=1,没有执行scanf("%*s");
清除缓存。
所以应删掉 if(status!=1)