【问题标题】:Is there a way to set the file pointer to a specific line? [duplicate]有没有办法将文件指针设置为特定的行? [复制]
【发布时间】:2016-03-14 06:07:21
【问题描述】:

我可以使用 c 将我的文件指针设置到第二行或第三行吗?如果可以,是否可以使用 rewind() 函数来做到这一点?

【问题讨论】:

  • 您如何定义“线”是什么?弄清楚这一点,您就可以通过计算与行尾标记的偏移量来跳到文件中的任何位置。
  • FILE* 不是行指针

标签: c file pointers


【解决方案1】:

据我所知,rewind 将始终将指针设置为文件的开头。

查找fseekfsetpos 以在FILE * 中设置读/写位置。

要设置与 EOL(行尾)标记相关的位置,您的代码必须读取数据以找出 EOL 何时出现...(即使您使用库函数,例如 getlinefgets)。

...所以,不,您不能使用 seekfsetpos 设置相对于线的位置。

【讨论】:

    【解决方案2】:

    这些系统调用不理解行的概念,即 用户/应用程序特定。所以 fseek() 不能做更多的事情 转到文件中的特定字节偏移。 rewind() 转到 文件的开头。所以没有办法去一行#。

    【讨论】:

    • 谢谢大家。非常感谢
    猜你喜欢
    • 2011-10-19
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2023-01-13
    相关资源
    最近更新 更多