【问题标题】:go back some lines in text file C programming返回文本文件中的一些行 C 编程
【发布时间】:2017-02-14 14:37:04
【问题描述】:

我有一个问题

回到光标位置几行

我已经测试了 fseek(fp, -127, -4// 后四行) - 但它没有用,请你帮帮我。

【问题讨论】:

  • 你能展示你的代码并准确解释什么不起作用吗?
  • fseek 只会影响库认为下一个要读取/写入的文件位置的视图。它不会影响已经在屏幕上的输出。您可以打印出'\b' 来删除您已经写入的字符,但是当您读取行首时,不能保证它会继续擦除前一行的字符。为了可靠地做你想做的事,你需要超出标准库提供的能力(例如,你可能想研究使用curses)。

标签: c file cursor back fseek


【解决方案1】:

首先,您似乎没有将正确的参数传递给fseek(更具体地说是最后一个参数)。其次,文本文件中的行很少是固定宽度的,因此不能使用特定的数字返回“四行”。

相反,您必须一次向后寻找一个字符才能找到正确的位置。使用 seek 函数这不是很有效,并且取决于您可能想要的文件

  1. 将其全部读入内存缓冲区,便于“查找”
  2. 作为上述方法的替代方法,内存映射整个文件
  3. 存储所有行首的位置,以便您轻松跳转

【讨论】:

    猜你喜欢
    • 2015-02-04
    • 2012-01-10
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    相关资源
    最近更新 更多