我的函数接收一个已读取到某个位置(未知字节数)的文件 (FILE* f)。在我的函数中,我还读取了一些内容,因此位置指针发生了变化,但在函数结束时我想将其保留在原来的位置,因此下一次读取将从我收到文件的位置开始。
我知道使用 fseek 我可以将指针带到我想要的任何地方,但问题是我不知道哪个是原始位置......
示例: file.txt =>“ABCDEFGHIJKLMOPQRSTUVWXYZ”
有人读取了前 3 个字符,所以我的函数接收到指向 D 的文件。我读取了 4 个字符并对它们进行了任何操作,所以现在位置将是 H,但我希望它将它带回 D。
最佳答案
正如人们在评论中告诉我的那样:
void myFunction(FILE* f) {
long position;
position = ftell(f);
/*
* Do stuff
*/
fseek(f,position,SEEK_SET);
}
关于c - 检索文件指针到原始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33180715/