| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1053 人关注过本帖
标题:[求助]请教关于文件的事情!
只看楼主 加入收藏
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
呵呵!多谢!先定义一个FILE类型的指针,指向scores.dat的文件信息区!然后要怎样利用那个文件里的数据啊?
要怎样读取每个学生的各个分数啊?然后去计算它们的平均值!

[此贴子已经被作者于2006-12-7 17:15:48编辑过]


该学习了。。。
2006-12-07 16:42
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 

这个是输出的文件中的内容!
NAME AVERAGE SCORE
S.H.E. 63.50
Kerry 60.25
Sunner 58.75
gigi 52.75
Jerry 52.75
Tom 49.50
Twins 49.50
Jay 43.50
coco 37.75
Bush 23.00


该学习了。。。
2006-12-07 16:46
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
"错误处理"这个要怎样做啊?

该学习了。。。
2006-12-07 16:50
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
还有要怎样向那个文件中写数据啊?

该学习了。。。
2006-12-07 16:58
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
以下是引用卧龙孔明在2006-12-6 19:43:23的发言:

比如数据相当多,如Hash table,将数据存储于文件,可以减少内存的占用,将余下的内存中存储重要的数据.还有就是文件的处理,比如*.doc->*.wps,必须运用文件.
当然,文件运用还有许多...
FILE *input; /*定义文件指针*/
input=fopen("文件名","打开方式(w写,r读.....当然还有许多其它的"); /*打开文件*/
fprintf(input,"格式,与printf一样", ); /*写文件*/
fscanf(input,"格式,与scanf一样", ); /*读入文件内容*/
fclose(input); /*关文件*/

卧龙孔明说的很详细了,你自己随便写几句简单用下函数就知道了。


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-07 17:29
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用zhanghuan_10在2006-12-7 16:50:46的发言:
"错误处理"这个要怎样做啊?

错误处理就是数据读取时错误(比如你要读一个数,结果遇到字符),以及文件打开的错误(比如文件不在,文件打开时出现异常)等,这时进行提示


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-12-07 20:46
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用zhanghuan_10在2006-12-7 16:42:49的发言:
呵呵!多谢!先定义一个FILE类型的指针,指向scores.dat的文件信息区!然后要怎样利用那个文件里的数据啊?
要怎样读取每个学生的各个分数啊?然后去计算它们的平均值!

最好的方法是建一个与数据类型一样的结构体,然后
fread(结构体变量地址,sizeof(struct 结构体名),1,文件指针);
当然也可以不用结构体,不过麻烦,读入方法为
fread(变量地址,sizeof(变量类型),1,文件指针);

至于平均值问题你应该会吧


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-12-07 20:55
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 

我是这么写的!我感觉很别扭!我想肯定是错了!
#include <stdio.h>
#include <stdlib.h>
#define N 100
#include <string.h>

struct student
{
char name[12];
float score[4];
}number[N];

struct str
{
char name[12];
float scores;
}numb[N];

int main()
{
int num, i;
FILE * fp;
FILE * ffp;
int paixu(struct student name[N], int num, struct str numb[N], FILE *ffp);

scanf("%d", &num);
for(i = 0;i < num;i ++)
scanf("%s%f%f%f%f", number[i].name, &number[i].score[0], &number[i].score[1], &number[i].score[2], &number[i].score[3]);
if((fp = fopen("scores.dat", "wb")) == NULL)
{
fprintf(stdout, "wrong");
exit (0);
}
fwrite(number, 29, num, fp);
if((ffp = fopen("stat.txt", "w+")) == NULL)
{
fprintf(stdout, "wrong");
exit (0);
}
paixu(number, num, numb, ffp);
fclose(fp);
fclose(ffp);

return 0;
}

int paixu(struct student number[N], int num, struct str numb[N], FILE *ffp)
{
int i, j, temp;
char tempp[100];

for(i = 0;i < num;i ++)
{
numb[i].scores = (number[i].score[0] + number[i].score[1] + number[i].score[2] + number[i].score[3])/4.0;
}
for(i = 0;i < num - 1;i ++)
for(j = i + 1;j < num;j ++)
{
if(numb[i].scores > numb[j].scores)
{
temp = numb[i].scores;
numb[i].scores = numb[j].scores;
numb[j].scores = temp;
strcpy(tempp, numb[i].name);
strcpy(numb[i].name, numb[j].name);
strcpy(numb[j].name, tempp);
}
}
fwrite(numb, 29, num, ffp);

return 0;
}


该学习了。。。
2006-12-08 13:39
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
帮我看一下是哪里错了!关于文件的程序要怎样调试啊?谢谢了!

该学习了。。。
2006-12-08 14:23
快速回复:[求助]请教关于文件的事情!
数据加载中...
 
   



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

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