zoukankan      html  css  js  c++  java
  • fseek函数

    fseek函数:

    int fseek(FILE *_FILE, long _Offset, int _Origin);

    函数设置文件指针stream的位置,如果执行成功,stream将指向以fromwhere为基准,偏移量offset(指针偏移量)个字节的位置,函数返回0。如果执行失败则不改变strea.m指向的位置,函数返回一个0。

    #include<stdio.h>
    #include<string.h>
    
    struct student
    {
        char name[100];
        int age;
    };
    
    int main()
    {
        struct student st = {0};
        FILE *p = fopen("./c.txt","rb");
        
        memset(&st,0,sizeof(struct student));
        fread(&st,sizeof(struct student),1,p);
        printf("name = %s,age = %d
    ",st.name,st.age);
    
        fclose(p);
        return 0;
    }

    运行结果:

    exbot@ubuntu:~/wangqinghe/C/20190725$ ./fseek

    name = wang,age = 21

    #include<stdio.h>
    #include<string.h>
    
    struct student
    {
        char name[100];
        int age;
    };
    
    int main()
    {
        struct student st = {0};
        FILE *p = fopen("./c.txt","rb");
        
        memset(&st,0,sizeof(struct student));
        fread(&st,sizeof(struct student),1,p);
        printf("name = %s,age = %d
    ",st.name,st.age);
    
        fseek(p,0-sizeof(struct student),SEEK_CUR);
    
        memset(&st,0,sizeof(struct student));
        fread(&st,sizeof(struct student),1,p);
        printf("name = %s,age = %d
    ",st.name,st.age);
    
        fclose(p);
        return 0;
    }

    运行结果:

    exbot@ubuntu:~/wangqinghe/C/20190725$ ./fseek

    name = wang,age = 21

    name = wang,age = 21

    #include<stdio.h>
    #include<string.h>
    
    struct student
    {
        char name[100];
        int age;
    };
    
    int main()
    {
        struct student st = {0};
        FILE *p = fopen("./c.txt","rb");
        
        memset(&st,0,sizeof(struct student));
        fread(&st,sizeof(struct student),1,p);
        printf("name = %s,age = %d
    ",st.name,st.age);
    
        //fseek(p,0-sizeof(struct student),SEEK_CUR);
    
        memset(&st,0,sizeof(struct student));
        fread(&st,sizeof(struct student),1,p);
        printf("name = %s,age = %d
    ",st.name,st.age);
    
        fclose(p);
        return 0;
    }

    运行结果:

    exbot@ubuntu:~/wangqinghe/C/20190725$ ./fseek

    name = wang,age = 21

    name = qing,age = 34

    #include<stdio.h>
    #include<string.h>
    
    struct student
    {
        char name[100];
        int age;
    };
    
    int main()
    {
        struct student st = {0};
        FILE *p = fopen("./c.txt","rb");
        
        memset(&st,0,sizeof(struct student));
        fread(&st,sizeof(struct student),1,p);
        printf("name = %s,age = %d
    ",st.name,st.age);
    
        //fseek(p,0-sizeof(struct student),SEEK_CUR);
        fseek(p,0-sizeof(struct student),SEEK_END);
    
        memset(&st,0,sizeof(struct student));
        fread(&st,sizeof(struct student),1,p);
        printf("name = %s,age = %d
    ",st.name,st.age);
    
        fseek(p,0-sizeof(struct student),SEEK_END);
    
        memset(&st,0,sizeof(struct student));
        fread(&st,sizeof(struct student),1,p);
        printf("name = %s,age = %d
    ",st.name,st.age);
    
        fclose(p);
        return 0;
    }

    运行结果:

    exbot@ubuntu:~/wangqinghe/C/20190725$ ./fseek

    name = wang,age = 23

    name = he,age = 557

    name = he,age = 557

  • 相关阅读:
    C# 在RichTextBox根据内容自动调整高度
    C# TabControl 隐藏标签头(TabControl Hide Head)
    SQL Server Profiler的简单使用
    Entity Framework Code First 在Object Join Linq查询时出现全表查询的语句。
    传统if 从句子——以条件表达式作为if条件
    正向行为方法---解决问题
    Shell的特殊字符
    精进:如何成为一个很厉害的人---思维导图
    Linux下用于查看系统当前登录用户信息的4种方法
    有用户及目录判断的删除文件内容的Shell脚本
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11260662.html
Copyright © 2011-2022 走看看