| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 285 人关注过本帖
标题:输入到文件成功,但是读起文件到显示器失败?急,困惑了,求解答
只看楼主 加入收藏
t495647533
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-10-17
结帖率:66.67%
收藏
已结贴  问题点数:8 回复次数:1 
输入到文件成功,但是读起文件到显示器失败?急,困惑了,求解答
#include<stdio.h>
#include<stdlib.h>
#define N 4
struct student
{
    unsigned num;
    char     name[9];
    unsigned cla;
    int      score;
   
};

//写数据的函数
void  stu_write()
{
    int i;
    struct student stu;
    FILE * fp;
    if((fp=fopen("student.txt","w"))==NULL)
    {
        printf("打开文件失败");
        exit(1);
    }

    for(i=0;i!=N;i++)
    {
        scanf("%d %s %d %d",&stu.num,stu.name,&stu.cla,&stu.score);
        fprintf(fp,"%2d%-8s%1d%3d\n",stu.num,stu.name,stu.cla,stu.score);
    }
    fclose(fp);
}
//读数据并排序的函数
void stu_read_sort()
{
    int i,j,k;
    struct student stu[N],t;
    FILE *fp;
    if((fp=fopen("student.txt","r"))==NULL)
    {
        printf("打开文件失败");
        exit(1);
    }
    else
        printf("打开成功");
    //读数据
    i=0;
    fscanf(fp,"%2d %-8s %1d %3d\n",&stu[i].num,stu[i].name,&stu[i].cla,&stu[i].score);
    while(!feof(fp));
    {      
        i++;
        fseek(fp,(2+8+1+3+2*3+2)*i,0);
        fscanf(fp,"%2d,%-8s,%1d,%3d\n",&stu[i].num,stu[i].name,&stu[i].cla,&stu[i].score);
   
    }
    fclose(fp);//打开文件再关上文件,以防文件数据丢失
    printf("从文件写入内存结构体数组成功!!!");


    //排序
    for(i=0;i<=N-2;i++)
    {
        k=i;
        for(j=i+1;j<=N-1;j++)
            if(stu[k].score<stu[j].score)
                k=j;
            t=stu[k];
            stu[k]=stu[i];
            stu[i]=t;
    }
    //输出
    for(i=0;i<=N-1;i++)
    printf("%2d %-8s %1d %3d\n",stu[i].num,stu[i].name,stu[i].cla,stu[i].score);
}

//测试函数

int main()
{   
    stu_write();
    stu_read_sort();
    return 0;
}
2015-07-16 12:55
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:8 
fseek(fp,(2+8+1+3+2*3+2)*i,0);  
这个地方很重要,如果偏移的位置不恰到好处,就会程序报错
2015-07-17 15:54
快速回复:输入到文件成功,但是读起文件到显示器失败?急,困惑了,求解答
数据加载中...
 
   



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

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