zoukankan      html  css  js  c++  java
  • 文件操作1

    简单的文件操作

    //将2个学生的记录输入txt文件,并且显示在屏幕中
    #include <stdio.h>
    #include <stdlib.h>
    #define N 2
    typedef struct stu{
        char Class[20];
        int age;
        char name[9];
    }stu;//需要自定义类型(typedef),stu才能定义对象
    int main()
    {
        int i,n;
        char Class[20];
        int age;
        char name[9];
        FILE *fp;
        printf("将学生信息写入文件:
    ");
        fp = fopen("E:\c\stu.txt","w");//对指定文件进行写操作
        for(i=0;i<N;i++)
        {
            printf("学生班级:");
            scanf("%s",&Class);
            printf("学生年龄:");
            scanf("%d",&age);
            printf("学生姓名:");
            scanf("%s",&name);
            fprintf(fp,"%s%6d%10s",Class,age,name);//将学生信息写到文件中去
            fputc('
    ',fp);//没写入一条信息就换行此处'
    '可替换为'
    '
        }
        fclose(fp);//关闭文件
        printf("从文件中读取学生信息:
    ");
        fp = fopen("E:\c\stu.txt","r");//对指定文件进行读操作
        for(i=0;i<N;i++)
        {
            fscanf(fp,"%s%6d%20s",&Class,&age,&name);
            printf("学生班级:%s,学生年龄:%d,学生姓名:%s
    ",Class,age,name);                                                    
        }
        fclose(fp);
        printf("向文件中追加学生信息:
    ");
        fp = fopen("E:\c\stu.txt","wb");
        printf("追加个数:");
        scanf("%d",&n);
        stu *s = (stu*)malloc(sizeof(stu)*n);//动态开辟结构体数组
        for(i=0;i<n;i++)
        {
            printf("学生班级:");
            scanf("%s",&s[i].Class);
            printf("学生年龄:");
            scanf("%d",&s[i].age);
            printf("学生姓名:");
            scanf("%s",&s[i].name);
        }
        if(fwrite(&s,sizeof(stu),n,fp)!=n)//操作成功,则返回实际写入文件的数据块的个数
        {
            printf("文件不能写入数据!
    ");
            exit(1);
        }
        fclose(fp);
        printf("从文件中追读学生信息:
    ");
        fp = fopen("E:\c\stu.txt","rb");
        if(fread(&s,sizeof(stu),n,fp)!=n)//操作成功,则返回实际读取文件的数据块的个数
        {
            printf("文件不能读出数据!
    ");
            exit(1);
        }
        for(i=0;i<n;i++)
        {
            printf("学生班级:%s,学生年龄:%d,学生姓名:%s
    ",s[i].Class,s[i].age,s[i].name);
        }
        fclose(fp);
        return 0;
    }

  • 相关阅读:
    HTML5中的audio在手机端和 微信端的自动播放
    vue框架
    购物车原理
    angular前端框架
    -webkit-line-clamp超过两行就出现省略号
    jQuery事件委托
    淘宝橱窗
    选字游戏
    大众点评订单分库分表实践
    业界难题-“跨库分页”的四种方案
  • 原文地址:https://www.cnblogs.com/emptyCoder/p/5092762.html
Copyright © 2011-2022 走看看