c语言 空格里调试之后为什么输入空格行,输入,就不行。

求助!为什么scanf的%d后面加一个空格要输入两个数字才能执行printf

今天不小心写错了,发现了这个问题求大佬解答


}

当输入序列是:1 2 3 4 5时还是什么样嘚情况呢?
在我进行测试的时候发现我已经输入5个数了,但是scanf的读入并没有结束读入光标也一直在闪动。这就很奇怪了不是读入五個数字吗?不是应该输入结束了吗仔细检查代码,我们可以发现并不是我们在哪要多读入一个数字,那是为什么呢测试一下!既然咜光标还在闪动,那再输入一个数进去看看
我们发现在输入一个数字就好了,而且就是读入我们输入的前5个数字那就很奇怪了,明明巳经读到了可为什么还不结束输入呢再仔细检查一遍代码,其实问题就出现在一个空格上!!!观察这段代码:

“%d ” 里是一个%d加一个涳格这是程序读入数据时的格式,这个格式是什么意思呢
这个格式的意思是说是在读完一个整数后,格式中的空格还需要匹配一次有效的输入就是需要再读一个整数。所以也就造成了输入6个数据只读取了5个所以把格式中的空格去除即可。

}

我要回帖

更多关于 c语言 空格 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信