scanf("%*s")

版权声明:本文为博主原创文章,转载请务必注明出处和作者,谢谢合作! https://blog.csdn.net/zhanshen112/article/details/83274199

scanf("%*s"),其中*是表示输入的"以空格符结束的字符串"不传入任何变量,也就是舍弃的意思,因为这里sanf函数读入的是不正确的数据,当然就需要舍弃了,以免影响下一次的读入

如果我没猜错的话 楼主现在正在看C Primer Plus(第五版)吧
因为我依稀记得这个代码出自这里

解释:scanf("%*s")
首先我们跳到代码:(status = scanf("%d", &code)) != 1 这是判断输入是否正常
想必这个楼主应该理解了吧

再看
if (status != 1)
scanf("%*s");
当status不是1 说明输入的内容不是和变量code的类型一致
那么这是我们需要将输入的错误信息读取掉 否则scanf函数会把错误信息保留 影响下次的读入

好了 回归主题:先看scanf("%s") 这是读入一个字符串 以空格结束 -->解释了为什么"来跳至下一空白字符"

星号*的作用就是表示读入字符串的宽度 这里没用具体的数字就是表明需要读入的字符串的宽度是不确定的
 

猜你喜欢

转载自blog.csdn.net/zhanshen112/article/details/83274199
今日推荐