实验八文件 、实验目的 掌握C语言的流式文件概念和文件读写函数的使用 、实验要求 1.学会建立磁盘数据文件,进行数据文件的输入和输出。 2.能熟练运用文件处理函数: fopen, fclose,fget, fputc, fgets, fputs, fseek ftell fprintf, fscanf, fread, fwrite 3.能编写一般的文件处理类程序。 4.编写实验报告(八) 、实验内容 8-1读程序S8-1C,指出其功能,说明并写出程序的执行过程 源程序S8-1.C include main (int argc, char argV[ D if(argc=3) printf("\n Format: My Copy In") else FILE*source, *destin; source=fopen(argv[1], rb") destin=fopen(argv[2], wb") if(source==NULL) printf("ERROR: Can't open source file %s! \n",argv[1D) se if(destin= =NULL) printf("ERROR: Can't open destin file %s! n", argy[2D) else i while(feof(source) fputc(fgetc(source), destin) fclose(source) fclose(destin) 8-2请完善分屏显示文本文件内容的程序S8-2C。 源程序S8-2C #include <stdio h main(int argc, char * argYlL
1 实验八 文 件 一、实验目的 掌握 C 语言的流式文件概念和文件读写函数的使用。 二、实验要求 1. 学会建立磁盘数据文件,进行数据文件的输入和输出。 2. 能熟练运用文件处理函数:fopen,fclose,fgetc,fputc,fgets,fputs,fseek,ftell, fprintf, fscanf, fread,fwrite。 3. 能编写一般的文件处理类程序。 4.编写实验报告(八)。 三、实验内容 8-1 读程序 S8-1.C,指出其功能,说明并写出程序的执行过程。 源程序 S8-1.C # include main (int argc,char *argv[ ]) { if (argc!=3) printf("\n Format: MyCopy \n"); else { FILE *source,*destin; source=fopen(argv[1],"rb"); destin=fopen(argv[2],"wb"); if(source= =NULL) printf("ERROR:Can't open source file %s! \n",argv[1]); else if(destin= =NULL) printf("ERROR: Can't open destin file %s! \n",argv[2]); else { while (!feof (source)) fputc (fgetc(source),destin); } fclose(source); fclose(destin); } } 8-2 请完善分屏显示文本文件内容的程序 S8-2.C。 源程序 S8-2.C #include main(int argc,char *argv[ ]) {
8-3程序S8-3C用 writer函数把一个整型数组中的数据写到一个指定文件 S8-3dat中,再用 fread函数从该文件中读出数据到整型数组中,试完成该 程序。 源程序S8-3C main( static int array[l={15,25,35455565,7585,95,105} Int FILE *fp; fp=fopen("8-3.DAT", wb"); 8-4在磁盘上建立一个S8-4DAT文件,在文件中存入以下内容: October 27, 1891: Philip Downing is an American inventor. On that day, people start to use his letterboxes. He makes the street letterbox better. He gives it a cover so the letters are safe from the rain and bad people. Today people still use this kind of letterbox 编写程序S8-4C,读出S8-4DAT文件中的内容,并显示在屏幕上,再把这 些内容写入另一个文件S8-4out中,检查写入是否正确。 8-5程序S8-5C要求用 fprintf0函数将aay数组的5组整数写入文件S8-5DAT 中,1组数据作为1个记录,共写入5个记录,试完善程序。 源程序S8-5C #include maino Int 1, ,, array[s]5}={{1,23,4,5}{112,13.14,15}, {21,22,23,24,25},{31,32,3,34,35}, {41,42,43,44,45}; FILE*fp 8-6程序S8-6C的功能是从键盘输入一个字符串,将其中的小写字母全部转换 为大写字母,然后输出到文件S8-6DAT中保存,输入的字符串以“!”结束 程序多处有错,请调试并改正。允许修改和添加语句,但不得删除整行。 源程序S8-6C #include main( char str[100], filename[10] if(fp=fopen(" 8-7. DAT", W")=NULL) i printf("Open file errorin"); exit(O)
2 } 8-3 程序 S8-3.C 用 fwrite()函数把一个整型数组中的数据写到一个指定文件 S8-3.dat 中,再用 fread()函数从该文件中读出数据到整型数组中,试完成该 程序。 源程序 S8-3.C main() { static int array [ ]={15,25,35,45,55,65,75,85,95,105}; int i; FILE * fp; fp=fopen("8-3.DAT","wb"); } 8-4 在磁盘上建立一个 S8-4.DAT 文件,在文件中存入以下内容: October 27, 1891: Philip Downing is an American inventor. On that day, people start to use his letterboxes. He makes the street letterbox better. He gives it a cover so the letters are safe from the rain and bad people. Today people still use this kind of letterbox. 编写程序 S8-4.C,读出 S8-4.DAT 文件中的内容,并显示在屏幕上,再把这 些内容写入另一个文件 S8-4.out 中,检查写入是否正确。 8-5 程序 S8-5.C 要求用 fprintf()函数将 array 数组的 5 组整数写入文件 S8-5.DAT 中,1 组数据作为 1 个记录,共写入 5 个记录,试完善程序。 源程序 S8-5.C #include main() { int i,j,array[5][5]={{1,2,3,4,5},{11,12,13,14,15}, {21,22,23,24,25},{31,32,33,34,35}, {41,42,43,44,45}}; FILE *fp; } 8-6 程序 S8-6.C 的功能是从键盘输入一个字符串,将其中的小写字母全部转换 为大写字母,然后输出到文件 S8-6.DAT 中保存,输入的字符串以“!”结束。 程序多处有错,请调试并改正。允许修改和添加语句,但不得删除整行。 源程序 S8-6.C #include main() { file *fp; char str[100],filename[10]; int i=0; if((fp=fopen("8-7.DAT","w"))=NULL) { printf("Open file error\n"); exit(0);
printf("please enter a string: n") while(str[J!=!) i if(str[i]=a'&&str]='z') str[=str[-+32 fputc(str[i], fp) fclose(fp); fp=fopen("8-7.DAT", "W"); fgets(str, strlen(str)+1, fp); printf("%sn", str) fclose(fp); *8-7编写程序S8-7C,模拟用户注册和登录的过程。将S6-9C改为用文件实
3 } printf("please enter a string:\n"); gets(str[i]); while(str[i]!='!') { if(str[i]>='a'&&str[i]<='z') str[i]=str[i]+32; fputc(str[i],fp); } fclose(fp); fp=fopen("8-7.DAT","w"); fgets(str,strlen(str)+1,fp); printf("%s\n",str); fclose(fp); } *8-7 编写程序 S8-7.C,模拟用户注册和登录的过程。将 S6-9.C 改为用文件实 现