1、文件实验陈正宁123349淮海工学院计算机科学系实验报告书课程名:C语言程序设计(二) 题 目: 实验12 文件 班 级: 软嵌151 学 号: 2015123349 姓 名: 陈正宁 1、 实验内容或题目(1)编程将一个文本文件的内容复制到另一个文本文件中。(2)编写一个程序,实现以下功能:a)输入一系列的数据(学号、姓名、成绩)存放在二进制文件stud.dat中;b)从该文件中读出这些数据并显示出来。(3)编写一个程序实现以下功能:a)将由若干行(每行最多80个字符,最多100行)组成的一篇文章写入到文件in.dat中;b)从文件in.dat中读出这些字符串到xx数组中并显示;c)对xx数
2、组中的字符串按字典顺序递增排序并将排序后的结果存入文件out.dat中;d)从文件out.dat中读出所有数据并显示。2、实验目的与要求(1)掌握磁盘文件的打开、关闭等基本操作;(2)熟练掌握二进制文件和文本文件的读写操作;(3)掌握文件字符、字符串的读写以及格式化读写;(4)熟练掌握文件的随机读写。3、 实验步骤与源程序 实验步骤(1)、(2)、(3)、 源代码(1)、#include #include void main() FILE *from,*to; char in30,out30; printf(请输入要复制的文件名 n); scanf(%s,in); printf(请输入要粘贴的
3、文件名 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(nn); printf(正在复制,请稍后n); printf(.nn); printf(复制完成,请查收n); while(!feof(from) fputc(fgetc(from),to); fclose(from); fclose(to);(2)、#include #include #include #def
4、ine N 20struct student char numN; char nameN; char scoreN;stuN;int main(int argc, char* argv) FILE * fp; int n, i; if(! (fp = fopen(stud.dat, wb) fprintf(stderr, n CANNOT OPEN THE FILE !aaa); getch(); exit(-1); printf(请输入学生人数:); scanf(%d, &n); for(i = 0; i n; i+) printf(请输入学生学号:); scanf( %s, stui.nu
5、m); printf(请输入学生姓名:); scanf( %s, stui.name); printf(请输入学生成绩:); scanf( %s, stui.score); for(i = 0; i n; i+) if ( 1 != fwrite(&stui, sizeof(struct student ), 1, fp) ) fprintf(stderr, n文件打开错误!n); getch(); exit(-1); printf(nn); rewind(fp); if(! (fp = fopen(stud.dat, rb) fprintf(stderr, n文件打开错误!n); getch
6、(); exit(-1); printf( 学号 姓名 分数n); for(i = 0 ; i n ; i +) if(1 != fread(&stui, sizeof(struct student ), 1, fp) if(feof(fp) fclose (fp); return 0; fprintf(stderr, n 文件打开错误!n); printf(%8s %8s %5s n, stui.num, stui.name,stui.score); fclose(fp); return 0;(2)、#include #include #include #include #define MA
7、X 80int main(int argc, char* argv) void sort(char (* p)MAX, int n); FILE * fp; char a100MAX, xx100MAX; int n; if( !(fp = fopen(in.dat, wb+) fprintf(stderr, n CANNOT OPEN THE FILE !aaa); getch(); exit(-1); printf(请输入多少行文章:); /功能a scanf(%d, &n); for(int i = 0; i n; i+) printf(请输入第%d行:, i + 1); scanf(
8、%s , &ai); fputs(ai, fp); fputs(n, fp); rewind(fp); /功能b printf(n); printf(in.dat内的数据为 :n); for(i = 0; i n; i+) fgets(xxi, 81, fp); printf(%s, xxi); sort(xx, n); /功能c if(!(fp = fopen(out.dat, wb+) fprintf(stderr, n CANNOT OPEN THE FILE !aaa); getch(); exit(-1); printf(n); printf(in.dat内的数据经排序后存入out.
9、dat为 :n); /功能d for(i = 0; i n; i+) fputs(xxi, fp); printf(%s, xxi); fclose(fp); return 0;void sort(char (* p)MAX, int n) int i, j, k; char temp100; for(i =0 ; i n - 1;i +) k = i; for(j = i + 1;j 0) k = j; if(k != i) strcpy(temp, pi); strcpy(pi, pk); strcpy(pk, temp); 4、 测试数据与实验结果(可以抓图粘贴)(1)、(2)、(3)、5、 结果分析与实验体会(1).文件有不同的类型,在程序设计中,主要用到两种文件:程序文件,数据文件,而我们主要讨论的是数据文件。(2).要熟悉掌握使用文件方式表,P335页。(3).在使用完文件指针后一定要养成最后使用fclose来关闭文件指针的习惯。(4).我们可以使用顺序读写数据文件也可以随机读取数据文件。(5)C提供了一些函数用来检查输入输出函数调用时可能出现的错误:1.ferror函数 2.clearerr函数
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1