A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;
现在我想从末尾开始往上读怎么弄?

3 个回复

倒序浏览
本帖最后由 小笼包 于 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);

回复 使用道具 举报
顶一下~~
回复 使用道具 举报
小笼包 发表于 2015-8-19 22:00
用库函数fseek(文件类型指针,位移量,起始点)
例如
fseek(fp,100L,0);经文件位置标记向前移到离文件开头10 ...

搞出啦,thank you
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马