gpt4 book ai didi

c - fscanf (fi ,"%d %d", &used,"a)==2 中等于 2 意味着什么?

转载 作者:行者123 更新时间:2023-11-30 20:52:44 24 4
gpt4 key购买 nike

我开始学习文件,但我不太明白它们是如何读取的。

  1. 我的第一个问题是:这行中的 equals to 2 意味着什么?

    fscanf(fi,"%d %d", &used,&quota) == 2

    不是应该等于EOF吗,怎么知道程序已经结束了?

  2. 一行数据的文件与多行数据的文件有何不同。它如何读取\n 以及如何仅读取第一行或第二行?

最佳答案

How does the file with data in one line differs from the file with data in several lines. How does it read \n and how can I read only the first line or second for example?

这是关于 scanf 系列的另一个有趣的事实。接到电话

fscanf(fi, "%d %d", &used, &quota)

和输入行

10 20

它将成功读取已使用 10 和配额 20,这可能正是您的想法。但如果你给它输入

10
20

它也很乐意将已使用读取为10,将配额读取为20。事实上,它对于输入也同样有效

10

20

里面有一个空行。此外,您(即调用 fscanf 的代码的作者)绝对无法确定输入是在一行、两行还是其他内容上。

Shouldn't it be equal to EOF, how will it understand that the program has reached the end?

确实如此:如果 fscanf 在转换任何输入之前到达文件末尾,它将返回 EOF,这就是您可能想了解的内容。但这并不是您可能想了解的唯一错误情况。

假设输入行显示

10 abc 20

在这种情况下,fscanf 调用将返回 1,表示它能够读取 used 的值 10,但无法读取任何内容配额

检查 2 的原因(如您询问的代码中所示)是,只有当 fscanf 返回 2 时,它才会读取并转换两个变量的值。

关于c - fscanf (fi ,"%d %d", &used,&quota)==2 中等于 2 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58042847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com