【发布时间】:2014-12-18 15:11:21
【问题描述】:
如果我有一个包含以下内容的文本文件以二进制形式打开
1234567890
这样的调用:
fseek(fp, 5L, SEEK_SET);
当我调用 (char)fgetc(fp) 时给我 6,因为我从字节 0 偏移了 5 个字节(不是从 1 开始,而是从 2 开始)
但如果我这样做:
fseek(fp, -3L, SEEK_END);
当我打电话给 (char)fgetc(fp) 时,给我 8 而不是 7。
为什么?似乎与SEEK_END 一样,偏移量不是从最后一个字节之后的前一个字节开始的。
【问题讨论】:
-
顺便说一句,您不必为
SEEK_END使用负值吗? (只是问,我不知道) -
哦,是的!我编辑了我的帖子。
-
...我相应地编辑了我的答案。