c - C中scanf的返回值EOF

标签 c eof

C语言的scanf,我对返回值有点迷糊

在说明书中,它说:

  1. 如果在第一次成功转换或匹配失败发生之前到达输入末尾,则返回 EOF。
  2. 如果发生读取错误,也会返回 EOF,在这种情况下会设置流的错误指示符。

首先,如果输入结束在第一次成功转换之前或在匹配之前到达,我不确定它们是什么意思发生故障。这怎么可能?

其次,我不清楚读取错误和匹配失败的区别?

最佳答案

First, I am not sure what they mean by if the end of input is reached before the first successful conversion or before a matching failure occurs. How is that possible?

想象一下,您正在尝试从文件中读取一个字符,而您位于文件的末尾。在任何成功的转换或匹配尝试发生之前,将达到输入的结尾。

Second, I am not sure the difference between read error and matching failure?

读取错误意味着您无法从 FILE 中读取数据。匹配失败意味着您能够读取数据,但它与预期的不匹配(例如,为 %d 读取 a。)

关于c - C中scanf的返回值EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29637638/

相关文章:

c - 如何按字母顺序对字符串数组进行排序(区分大小写,非标准排序规则)

将字符串转换为 int 而不删除零

get - 在Raku中被get/提示符击中后,如何清除stdin($ * IN)上的EOF?

c - 如何从标准输入读取输入,直到 EOF 逐行读取,每行包含 C 中的四个空格分隔的整数

c - fscanf() != EOF 作为循环的退出条件在错误的时间退出

python - 在 Python virtualenv 中导入自己的 C 模块

c - 指针运算和数组 : what's really legal?

c - 如何fwrite到指针的指针?

sql - hive 查询中 “”缺少EOF “”

在不按 Enter C 的情况下捕获 EOF 击键