【已解决】scanf语句中%d后面多加一个空格,为什么数据需要多输入一个?

在这里插入图片描述
如上图的scanf,需要输入两个数据才能输出a, 并且a的值为第一个数据, 为什么呢?


scanf的“吃空白”行为

scanf默认以空格作为分隔输入的标志,当读入一个空格后, 必须输入0个或若干个非空字符结束的标志。

因此,上述代码中,scanf在读取%d后, 又读取了一个空格, 因此scanf默认我们还会继续输入值, 直到我们输入一个非空字符后才结束但这个后输入的值不会被任何变量接收, 仅仅作为输入结束的标志。

猜你喜欢

转载自blog.csdn.net/weixin_43899069/article/details/109051867
今日推荐