如何检查使用 scanf 时预期的输入数量何时停止?

How to check when the expected number of inputs stops while using scanf?

所以有点上下文,我试图制作一个代码来读取工作数量然后工作本身就像这样 4个 1个 2个 3个 4

事情是这样的 如果我输入工作数量为 4 然后输入3个工作, 然后出于某种原因它再次读取第三份作业。

如果发生这种情况,有什么方法可以检查并引发错误吗?我会比较两个值以检查它们是否相同,但两个值可以相同。

还有 我会使用一个文件让我们说 file.txt file.txt 将具有格式中的作业数和作业数 4个 1个 2个 3个 4个 我会使用 ./mx3 < file.txt 其中 mx3 是使用 gcc c99

编译的程序
  1. 你能post一些代码来更好地理解吗?

我完全不明白你的问题,但我认为这对你有帮助:

Return Value of scanf

复制并粘贴自 here


这些函数return成功匹配和分配的输入项数,可能少于规定的数量,如果早期匹配失败,甚至为零。

如果在第一次成功转换或匹配失败发生之前到达输入末尾,则值 EOF 被 returned。如果发生读取错误,EOF 也会被 return 编辑,在这种情况下,流的错误指示符(请参阅 ferror(3))被设置,并且 errno 被设置以指示错误。


(我是堆栈新手,如果我笨拙请原谅我,如果可能的话请解释我以提高自我^^)