| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 829 人关注过本帖
标题:顺序读取与定位读取
取消只看楼主 加入收藏
sangyufeiwan
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2008-10-20
结帖率:100%
收藏
 问题点数:0 回复次数:0 
顺序读取与定位读取
#include <stdio.h>
#include <stdlib.h>
void main()
{FILE *fp;
 struct stu { long num;
          char name[20];
          float total;
        } s[3],a,bi,ba;
 int i;
 for(i=0;i<3;i++)
    scanf("%d,%s,%f",&s[i].num,s[i].name,&s[i].total);
 if((fp=fopen("d:\\c\\total.dat","wb"))==NULL)
   { printf("can not open file\n");exit(0);}
 fwrite(s,sizeof(struct stu),3,fp);
 fclose(fp);
 if((fp=fopen("d:\\c\\total.dat","rb"))==NULL)
   {printf("can not open file\n");exit(0);}
 fread(&bi,sizeof(struct stu),1,fp);
 rewind(fp);
 fread(&ba,sizeof(struct stu),1,fp);
 rewind(fp);
 for(i=0;i<3;i++)
    { fread(&a,sizeof(struct stu),1,fp);
      if(a.total>ba.total)
    {ba.num=a.num;ba.name[10]=a.name[10];ba.total=a.total;}
      if(a.total<bi.total)
    {bi.num=a.num;bi.name[10]=a.name[10];bi.total=a.total;}
    }
 printf("min:%d %s %f\n",bi.num,bi.name[10],bi.total);
 printf("max:%d %s %f\n",ba.num,ba.name[10],ba.total);
 fclose(fp);
}
功能:设名为“d:\c\total.dat”的二进制文件中按照下列结构型,依次存放了3个学生的信息,编程,从中找到总分最高和最低的学生,并输出他们的学号,姓名和总分。 struct{long num; char name[20]; float total;};(本题不允许使用结构型数组一次读取3个学生的信息,要求先顺序读取文件查找到这2个学生的序号,在定位读取文件输出他们的信息)
我输入的数据:1073 zhao 240.00
              1123 qian 360.00
              1001 sun 560.00
运行后屏幕显示:min 1123 (乱码)
               max  1073 (乱码)  
查看“d:\c\total.dat”文件看到:1雤hao,240.00 V鑈鎅_^嬪]c¤qian,360.00 彗Y3溃?h腴鋝un,560.00 ?鎅;6?u
3溃
搜索更多相关主题的帖子: c语言 顺序读取与定位读取 
2008-11-25 19:22
快速回复:顺序读取与定位读取
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036132 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved