| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 336 人关注过本帖
标题:文件操作???
只看楼主 加入收藏
cui_gf
Rank: 1
等 级:新手上路
帖 子:7
专家分:6
注 册:2011-9-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
文件操作???
#include<stdio.h>
#include<stdlib.h>

FILE *fp1;
FILE *fp2;

void read(struct stu1 *m);
void fwrite(struct stu2 *n);
void aver(struct stu1 *k,struct stu2 *j);

struct stu1
{
        char name[20];
        long int xuehao;
        int xueqian;
        int xuezhong;
        int xuemo;
}xue1[10],*p;

struct stu2
{
        char name[20];
        long int xuehao;
        int xueqian;
        int xuezhong;
        int xuemo;
        float aver;
}xue2[10],*q;

void main()
{
        if((fp1=fopen("D:\\VC++6.0\\MSDev98\\MyProjects\\文件读写操作\\stud.txt","r+"))==NULL)
        {
                printf("打开文件错误,请确认文件具体位置。\n");
                getchar();
                exit(1);
        }
        if((fp2=fopen("D:\\VC++6.0\\MSDev98\\MyProjects\\文件读写操作\\aver.txt","w+"))==NULL)
        {
                printf("打开文件错误,请确认文件具体位置。\n");
                getchar();
                exit(1);
        }
        p=xue1;
        read(p);
        rewind(fp1);
        p=xue1;        
        aver(p,q);
        getchar();
        p=xue1;
        q=xue2;
        rewind(fp1);
        rewind(fp2);
        fwrite(q);
        getchar();
        fclose(fp1);
        fclose(fp2);
}

void read(struct stu1 *m)
{
        int i;
        for(i=0;i<10;i++,m++)
        {
                fread(m,sizeof(struct stu1),10,fp2);
                printf("%s %ld %d %d %d\n",m->name,m->xuehao,m->xueqian,m->xuezhong,m->xuemo);
        }
}

void aver(struct stu1 *k,struct stu2 *j)
{
        int i;
        float aver;
        for(i=0;i<10;i++,k++,j++)
        {
                aver=(float)(j->xueqian+j->xuezhong+j->xuemo)/3;
                j->aver=aver;
        }
}

void fwrite(struct stu2 *n)
{
        int i;
        for(i=0;i<10;i++,n++)
        {
                fwrite(n,sizeof(struct stu2),10,fp2);
                printf("%s %ld %d %d %d %f\n",n->name,n->xuehao,n->xueqian,n->xuezhong,n->xuemo,n->aver);
        }
}

已知在一个ASCII“stud.txt”,有10个学生的记录,每条记录有4项数据,第1项为学号(int型),第2、3、4项为成绩(float型),编写一个程序从该文件中将这些学生的数据读出来,计算每个人的平均成绩,然后在将原有数据和计算出的平均成绩写到另外一个ASCII“aver.txt”中

我的问题是:在stud.txt文件已经输入了10个学生的数据;但我读入内存,再输出却是显示都是0;请各位帮帮我看看;另我的程序虽然没有问题,但看起来有点别扭。希望各们大大帮我改正。谢谢。
搜索更多相关主题的帖子: include 
2011-09-05 23:19
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:7 
好久没用C语言的函数操作文件了!要么CFile 要么WriteFile
2011-09-05 23:20
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:7 
fread(m,sizeof(struct stu1),10,fp2); //这里是不是要用fp1呀
2011-09-05 23:24
cui_gf
Rank: 1
等 级:新手上路
帖 子:7
专家分:6
注 册:2011-9-1
收藏
得分:0 
回复 3楼 czsbc
对,是要改成fp1,但好像操作起来还是有点问题。麻烦你再帮我看看。好像是循环出了问题。
2011-09-05 23:32
cui_gf
Rank: 1
等 级:新手上路
帖 子:7
专家分:6
注 册:2011-9-1
收藏
得分:0 
我发现自己写的这个程序挺多毛病的,请各位帮忙修改,或者写个程序给我对照下。谢谢。
2011-09-05 23:49
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
一点注释都没有,睡觉......
2011-09-05 23:55
快速回复:文件操作???
数据加载中...
 
   



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

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