【问题标题】:How to read a file up to second to last line如何读取文件直到倒数第二行
【发布时间】:2014-06-22 10:07:34
【问题描述】:

我正在尝试读取以下格式的文件 你好

{

    1--2
    2--3
    3--4

}

我只想使用文件中给定的整数,为此我使用以下代码

while(fscanf(fp, "%d--%d", &a, &b) != EOF)
    {   // do something here}

问题是这不起作用,因为它在读取第一行后进入无限循环,如果我删除第一行,它会在读取 } 的最后一行进入无限循环。
那么,如何以适当的方式做到这一点?

【问题讨论】:

  • 为什么我投了反对票,有人可以询问更多信息。
  • @user1492793 stackoverflow.com 会导致长期用户出现精神病倾向 :-) ... 说真的,通过谷歌搜索或阅读,您可能已经知道了。

标签: c file scanf


【解决方案1】:

如果一切都失败了,RTFM: fscanf:“此函数返回成功匹配和分配的输入项的数量,可以少于提供的数量,如果早期匹配失败,甚至为零。” 同时,EOF=-1 尽管在某些平台上的某些 stdio.h 头文件中它可能等于 0。 您可以检查 fscanf 是否返回 0 或使用 feof(fp) 检查是否已到达文件末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 2023-01-17
    • 2014-02-26
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    相关资源
    最近更新 更多