fseek,到文件的最后一个字节是什么意思?

时间:2017-12-01 15:08:56

标签: c file fseek

这个问题出现在一个测验中:

将'Z'替换为正确的数字,将FILE指针'fp'设置为文件的最后一个字节:

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;

public class DepartmentList
{

    public static ObservableList<Department> getDepartmentList()
    {
        Department fruit = new Department("Fruit");
        Department vegetables = new Department("Vegetables");
        Department beverages = new Department("Beverages");

        ObservableList<Department> list;
        list = FXCollections.observableArrayList(fruit, vegetables,
                beverages);

        return list;
    }
}

我的答案是-1,因为对我来说,在某个字节处意味着处于一个位置以便附加到该文件将覆盖该字节并保持存储其他字节(如果有的话)似乎很自然。老师坚持0。如果你能解释,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

-1似乎是正确的。我刚刚尝试过,fgetcfseek(f, -1, SEEK_END)生成了文件的最后一个字符。相对于SEEK_END求0,导致fgetc返回EOF

显然指向文件的最后一个字节与指向文件末尾不同。此外,如果术语中存在任何歧义,则测试失败,而不是学生失败。如果学生已经证明了预期的知识,他们应该获得学分。