【问题标题】:What is the way to do the following in C? [closed]在 C 中执行以下操作的方法是什么? [关闭]
【发布时间】:2012-11-12 06:29:07
【问题描述】:

我想在文件中保存一个位置,然后将文件指针恢复到保存的位置。

 FILE *save = fp;

//perform operations on file fp...  

..
..

//restore to previously saved location

fp = save;  

上面的方法我试过了,还是不行。

【问题讨论】:

  • savefp 都指向同一个位置,这就是原因。尝试使用两个 FILE 指针。
  • 除了fseek()ftell(),还有fgetpos()fsetpos()

标签: c file pointers


【解决方案1】:

有关ftellfseek 函数的信息,请参阅this page。这些将允许您分别检索和设置文件指针的位置。

long int originalPos = ftell(fp);
// do stuff with file
fseek(fp, originalPos, SEEK_SET);

【讨论】:

    【解决方案2】:

    创建 2 个 fp 变量?使用您未执行操作的那个来恢复?

    【讨论】:

      【解决方案3】:

      我认为您正在寻找的是fseekftelllong int pos = ftell(fp); 获取当前位置,fseek(fp, pos, SEEK_SET); 返回该点。

      相关手册页:http://linux.die.net/man/3/ftell

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-06
        • 2021-09-30
        • 1970-01-01
        • 1970-01-01
        • 2021-08-23
        • 2013-02-10
        • 2012-10-15
        相关资源
        最近更新 更多