黑马程序员技术交流社区

标题: 文件指针读文件,怎从末尾往上读啊 [打印本页]

作者: 81516741    时间: 2015-8-19 21:21
标题: 文件指针读文件,怎从末尾往上读啊
typedef struct Student{
        char name[21];
        int age;
        float score;
    } STUDENT;
    STUDENT stu[3] =
    {{"哈哈",20,99.0f},{"呵呵",23,98.0f},{"嘿嘿",22,97.0f}};
//创建文件指针
    FILE *fp = fopen("student.date", "wb+");
    if (fp != NULL) {
        //循环写入
        for (int i = 0; i < 3; i++) {
            fwrite(&stu[i], sizeof(STUDENT), 1, fp);
        }
        Log("写入成功\n");
    }
fseek(fp, sizeof(STUDENT), SEEK_END);
    STUDENT stu3;
现在我想从末尾开始往上读怎么弄?

作者: 小笼包    时间: 2015-8-19 22:00
本帖最后由 小笼包 于 2015-8-19 22:04 编辑

用库函数fseek(文件类型指针,位移量,起始点)
例如
fseek(fp,100L,0);经文件位置标记向前移到离文件开头100个字节处
fseek(fp,50L,1);将文件位置标记向前移到离当前位置50个字符处
fseek(fp,-10L,2);将文件标记从文件末尾处向后退10个字节
0表示文件开始位置1表示当前位置,2表示文件末尾位置

fseek(fp, sizeof(STUDENT), 2);


作者: lzfree    时间: 2015-8-19 23:25
顶一下~~
作者: 81516741    时间: 2015-8-20 10:08
小笼包 发表于 2015-8-19 22:00
用库函数fseek(文件类型指针,位移量,起始点)
例如
fseek(fp,100L,0);经文件位置标记向前移到离文件开头10 ...

搞出啦,thank you




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2