我的函数接收一个文件(FILE * f),该文件已被读取,直到某个位置(未知的字节数)。在我的函数中我也读了一些东西,所以位置指针改变了,但是在函数的最后我想把它保留在原来的位置,所以下一次读取将从我收到文件的位置开始。
我知道,我可以把指针指向我想要的任何地方,但问题是我不知道哪个是原来的位置......
实施例: file.txt => " ABCDEFGHIJKLMOPQRSTUVWXYZ"
有人读取前3个字符,所以我的函数收到指向D的文件。我读了4个字符并用它们做任何事情,所以现在位置是H,但我希望它把它带回D.
答案 0 :(得分:1)
正如人们在评论中告诉我的那样:
void myFunction(FILE* f) {
long position;
position = ftell(f);
/*
* Do stuff
*/
fseek(f,position,SEEK_SET);
}