1

我在我的 C 程序中遇到问题,在我使用 后fread(),文件指针有时会转到文件末尾。

我会尝试更好地解释 - 代码看起来像:

dummy = ftell(fp);
fread(&buf, sizeof(unsigned char), 8, fp);
dummy = ftell(fp);

指向打开文件的文件指针在哪里fp(用“w +”打开它,我将它用作二进制文件,我知道我应该在那里也有一个“b”,但我听说它并不重要添加它..), dummy只是一个unsigned long变量,并且bufunsigned char[8]

现在,在调试时,在ftell之前freaddummy是 262062,在ftell之后freaddummy是 262640,即使我只“移动”了 8 个字节..

有谁知道这可能是什么原因..?感谢您的帮助 :)

4

1 回答 1

5

如果您不使用b打开文件,ftell()则不会返回真相,只是一种仅对fseek(). 那里有很多不同的实现。检查您的系统的手册页以了解更多信息。

于 2010-03-27T18:29:59.897 回答