【问题标题】:overwriting a specific line on a text file?覆盖文本文件上的特定行?
【发布时间】:2009-12-02 13:00:32
【问题描述】:

如何在 c 中覆盖文本文件中的特定行?我有多个变量的值需要写入文件。

【问题讨论】:

    标签: c file variables file-writing


    【解决方案1】:

    这仅在新行与旧行大小相同时有效:

    • a+模式打开文件
    • fseek() 到文件的开头
    • 在阅读下一行之前,使用ftell() 记下该行的开头
    • 阅读该行
    • 如果是您想要的行,请再次使用ftell() 的结果fseek() 并使用fwrite() 覆盖它。

    如果行的长度发生变化,则必须复制文件。

    【讨论】:

    • 您好,我是新手,所以不知道如何使用 fseek 或 ftell,您知道有关其使用的任何教程吗? -谢谢。
    【解决方案2】:

    由于文件(从 C 标准库的角度来看)不是面向行的,而只是一个字符序列(或二进制模式下的字节),因此您不能期望在行级编辑它们很容易。

    正如 Aaron 所述,如果您的替换字符数完全相同,您当然可以替换构成该行的字符。

    您还可以(也许)通过在末尾(行终止符之前)填充空格来插入较短的替换。这当然有点粗略。

    【讨论】:

    • 有没有使用fseek和fwrite的教程?
    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多