C语言的scanf,我对返回值有点迷糊
在说明书中,它说:
- 如果在第一次成功转换或匹配失败发生之前到达输入末尾,则返回 EOF。
- 如果发生读取错误,也会返回 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/