文件实验陈正宁123349.docx

上传人:b****5 文档编号:7894699 上传时间:2023-01-27 格式:DOCX 页数:11 大小:234.08KB
下载 相关 举报
文件实验陈正宁123349.docx_第1页
第1页 / 共11页
文件实验陈正宁123349.docx_第2页
第2页 / 共11页
文件实验陈正宁123349.docx_第3页
第3页 / 共11页
文件实验陈正宁123349.docx_第4页
第4页 / 共11页
文件实验陈正宁123349.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

文件实验陈正宁123349.docx

《文件实验陈正宁123349.docx》由会员分享,可在线阅读,更多相关《文件实验陈正宁123349.docx(11页珍藏版)》请在冰豆网上搜索。

文件实验陈正宁123349.docx

文件实验陈正宁123349

淮海工学院计算机科学系

实验报告书

课程名:

《C语言程序设计

(二)》

题目:

实验12文件

班级:

软嵌151

学号:

2015123349

姓名:

陈正宁

 

1、实验内容或题目

(1)编程将一个文本文件的内容复制到另一个文本文件中。

(2)编写一个程序,实现以下功能:

a)输入一系列的数据(学号、姓名、成绩)存放在二进制文件stud.dat中;b)从该文件中读出这些数据并显示出来。

(3)编写一个程序实现以下功能:

a)将由若干行(每行最多80个字符,最多100行)组成的一篇文章写入到文件in.dat中;b)从文件in.dat中读出这些字符串到xx数组中并显示;c)对xx数组中的字符串按字典顺序递增排序并将排序后的结果存入文件out.dat中;d)从文件out.dat中读出所有数据并显示。

2、实验目的与要求

(1)掌握磁盘文件的打开、关闭等基本操作;

(2)熟练掌握二进制文件和文本文件的读写操作;

(3)掌握文件字符、字符串的读写以及格式化读写;

(4)熟练掌握文件的随机读写。

3、实验步骤与源程序

实验步骤

(1)、

(2)、

 

(3)、

 

源代码

(1)、

#include

#include

voidmain()

{

FILE*from,*to;

charin[30],out[30];

printf("请输入要复制的文件名\n");

scanf("%s",in);

printf("请输入要粘贴的文件名\n");

scanf("%s",out);

if((from=fopen(in,"r"))==NULL)

{

printf("输入复制文件名有错误\n");

exit(0);

}

if((to=fopen(out,"w"))==NULL)

{

printf("输入粘贴文件名有错误\n");

exit(0);

}

printf("\n\n");

printf("正在复制,请稍后\n");

printf(".............\n\n");

printf("复制完成,请查收\n");

while(!

feof(from))

{

fputc(fgetc(from),to);

}

fclose(from);

fclose(to);

}

(2)、

#include

#include

#include

#defineN20

structstudent

{

charnum[N];

charname[N];

charscore[N];

}stu[N];

intmain(intargc,char*argv[])

{

FILE*fp;

intn,i;

if(!

(fp=fopen("stud.dat","wb")))

{

fprintf(stderr,"\nCANNOTOPENTHEFILE!

\a\a\a");

getch();

exit(-1);

}

printf("请输入学生人数:

");

scanf("%d",&n);

for(i=0;i

{

printf("请输入学生学号:

");

scanf("%s",stu[i].num);

printf("请输入学生姓名:

");

scanf("%s",stu[i].name);

printf("请输入学生成绩:

");

scanf("%s",stu[i].score);

}

for(i=0;i

{

if(1!

=fwrite(&stu[i],sizeof(structstudent),1,fp))

{

fprintf(stderr,"\n文件打开错误!

\n");

getch();

exit(-1);

}

}

printf("\n\n");

rewind(fp);

if(!

(fp=fopen("stud.dat","rb")))

{

fprintf(stderr,"\n文件打开错误!

\n");

getch();

exit(-1);

}

printf("学号姓名分数\n");

for(i=0;i

{

if(1!

=fread(&stu[i],sizeof(structstudent),1,fp))

{

if(feof(fp))

{

fclose(fp);

return0;

}

fprintf(stderr,"\n文件打开错误!

\n");

}

printf("%8s%8s%5s\n",stu[i].num,stu[i].name,stu[i].score);

}

fclose(fp);

return0;

}

(2)、

#include

#include

#include

#include

#defineMAX80

intmain(intargc,char*argv[])

{

voidsort(char(*p)[MAX],intn);

FILE*fp;

chara[100][MAX],xx[100][MAX];

intn;

if(!

(fp=fopen("in.dat","wb+")))

{

fprintf(stderr,"\nCANNOTOPENTHEFILE!

\a\a\a");

getch();

exit(-1);

}

printf("请输入多少行文章:

");//功能a

scanf("%d",&n);

for(inti=0;i

{

printf("请输入第%d行:

",i+1);

scanf("%s",&a[i]);

fputs(a[i],fp);

fputs("\n",fp);

}

rewind(fp);//功能b

printf("\n");

printf("in.dat内的数据为:

\n");

for(i=0;i

{

fgets(xx[i],81,fp);

printf("%s",xx[i]);

}

sort(xx,n);//功能c

if(!

(fp=fopen("out.dat","wb+")))

{

fprintf(stderr,"\nCANNOTOPENTHEFILE!

\a\a\a");

getch();

exit(-1);

}

printf("\n");

printf("in.dat内的数据经排序后存入out.dat为:

\n");//功能d

for(i=0;i

{

fputs(xx[i],fp);

printf("%s",xx[i]);

}

fclose(fp);

return0;

}

voidsort(char(*p)[MAX],intn)

{

inti,j,k;

chartemp[100];

for(i=0;i

{

k=i;

for(j=i+1;j

{

if(strcmp(p[k],p[j])>0)

{

k=j;

}

}

if(k!

=i)

{

strcpy(temp,p[i]);

strcpy(p[i],p[k]);

strcpy(p[k],temp);

}

}

}

 

4、测试数据与实验结果(可以抓图粘贴)

(1)、

(2)、

(3)、

5、结果分析与实验体会

(1).文件有不同的类型,在程序设计中,主要用到两种文件:

程序文件,数据文件,而我们主要讨论的是数据文件。

(2).要熟悉掌握使用文件方式表,P335页。

(3).在使用完文件指针后一定要养成最后使用fclose来关闭文件指针的习惯。

(4).我们可以使用顺序读写数据文件也可以随机读取数据文件。

(5)C提供了一些函数用来检查输入输出函数调用时可能出现的错误:

1.ferror函数

2.clearerr函数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1