扫描c中的数组元素

时间:2016-01-09 17:13:01

标签: c arrays

如果我声明一个n个元素的数组,在使用单个for循环扫描元素时,我注意到输入的元素数量可能大于n(如果我在每个元素后按下SPACE),但是当我打印时数组只给出前n个元素。我正在使用代码块。

为什么?

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以通过按空格键输入多个输入,但要完成输入scanf需求并输入'被迫。所以当你按下输入scanf终止。

当你使用for循环进行扫描时,你的第一个scanf会执行,它应该先进行输入,但是你使用空间提供多个输入(可能是也可能不是n)。然后当你按下输入时,scanf停止接收输入,分配值并终止。然后你执行第二次scanf(循环),现在你的队列中已有未使用的输入。所以这个scanf的输入是从输入缓冲区获取的,而你不会为另一个输入而烦恼,它会发生,直到你的for循环没有终止或你的输入缓冲区没有变空,在这种情况下你将是要求更多的投入。