| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3479 人关注过本帖
标题:一个关于从文件中读取数据的问题
只看楼主 加入收藏
cai85204550
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-5-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
一个关于从文件中读取数据的问题
当我第一次打开程序时往线性表中输入数据,在关闭程序时用case 1将线性表中的数据存入到文件中(这一步是可以的,已经产生文件,并且存入了数据),接着关闭程序,我原本的想法是想在再一次打开这个程序时,直接用case 2将文件中数据写入线性表中,然后显示数据,但这一步不行没有显示任何数据,请教。。。
typedef struct link
{
    char name[20];      //参赛者姓名
    char yuanxi[20];    //参赛者院系
    char xingbie[20];   //参赛者性别
    int xuehao;         //参赛者学号
    float data;         //参赛者成绩
}link ;
typedef struct
{
     link *elem;
     int length;
     int listsize;
}Sqlist;
a(Sqlist *L)/*把线性表L中的数据存入50米成绩.doc文件中*/
{
    int i;
    FILE *fp; /*定义文件指针*/
    if((fp=fopen("50米成绩.doc","wb"))==NULL) /*打开文件*/
    {
      printf("\t\t\tcann't open the file\n");
      system("pause");
      return;
    }
    fprintf(fp,"姓名:  %s  性别:  %s  院系:  %s  学号  %d  分数: %3.3f\n\n",L->elem[i].name, L->elem[i].xingbie,L->elem50[i].yuanxi,L->elem[i].xuehao,L->elem[i].data);   /*把已经存在的数据存进50米成绩.doc这个文件中*/
}
b(Sqlist *L)/*把文件中的数据读取出来存入线性表L中*/
{
    int i;
    char c[20],p[20],q[20];
    FILE *fp; /*定义文件指针*/
    if((fp=fopen("50米成绩.doc","r"))==NULL) /*打开文件*/
    {
      printf("\t\t\tcann't open the file\n");
      system("pause");
      return;
    }
    for(i=0;i<L->length;i++)
    {
        fscanf(fp,"%s%s%s%d%f",c, q,p,&L->elem[i].xuehao,&L->elem[i].data);/*把文件中的数据导入线性表L中*/
        strcpy(L->elem[i].name,c);
        strcpy(L->elem[i].xingbie,q);
        strcpy(L->elem[i].yuanxi,p);
    }
    fclose(fp);
}
Outputdata(Sqlist *L)//函数功能:输出完成后的比赛成绩
{
    float f;
    int i;
    char c;
    printf("                      比赛成绩排名\n");
    if(L->length>3)
    {
        for(i=0;i<3;i++)
        {
            printf("姓名:    %s     性别:    %s     院系:     %s     学号:    %d     分数:    %3.3f\n",L->elem[i].name, L->elem[i].xingbie,L->elem[i].yuanxi,L->elem[i].xuehao,L->elem[i].data);
        }
    }
    else
    {
        for(i=0;i<L->length;i++)
        {
            printf("姓名:    %s     性别:    %s     院系:     %s     学号:    %d     分数:    %3.3f\n",L->elem[i].name, L->elem[i].xingbie,L->elem[i].yuanxi,L->elem[i].xuehao,L->elem[i].data);
        }
    }
}
main()/*主函数*/
{
     while(i<4)
   switch(i)
  {
   case 1:
       .....(前面一段代码是往线性表中输入数据之类的,如果需要的话我在补上)
       a(&L);/*将数据写入文件中*/
       break;
   case 2:
       b(&L);/*将文件中的数据写入到线性表L忠*/
       break;
    case 3:
       Outputdata(&L);/*显示数据*/
       break;
    default:
       break;        
  }
}


[ 本帖最后由 cai85204550 于 2012-5-14 14:11 编辑 ]
搜索更多相关主题的帖子: 线性表 
2012-05-13 20:49
cai85204550
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-5-14
收藏
得分:0 
程序是可以运行的。
2012-05-13 23:22
ln6265431
Rank: 5Rank: 5
等 级:职业侠客
帖 子:66
专家分:325
注 册:2012-3-29
收藏
得分:14 
没看懂你的问题
2012-05-13 23:44
cai85204550
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-5-14
收藏
得分:0 
我改了下,你再看看
2012-05-14 00:06
快速回复:一个关于从文件中读取数据的问题
数据加载中...
 
   



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

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