c语言实验报告_第1页
c语言实验报告_第2页
c语言实验报告_第3页
c语言实验报告_第4页
c语言实验报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、试验内容完成《C〔第四版〕12文件操作(P267)。二、试验目的学习对文件的输入输出三、试验过程与步骤VisualC++建立一个把握台工程在工程中建立源文件并编写程序编程后编译,假设消灭编译错误则应当检查错误并改正运行程序并观看结果并记录四、程序分析

10-1从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止#include<stdio.h>intmain{FILE*fp;请输入所用的文件名:“);scanf(“%s“,filename);if((fp=fopen(filename,“w“))==NULL) //fp指向此文件{假设翻开时出错,就输入“打不开”的信息exit(0); 终止程序}ch=getchar; printf(请输入一个预备存储到磁盘的字符串(以#完毕):“);ch=getchar; 接收从键盘输入的第一个字符while(ch!=”#”) //当输入‘#’时完毕循环{fputc(ch,fp); //向磁盘文件输出一个字符putchar(ch); 将输出的字符显示在屏幕上ch=getchar; 再接收从键盘输入的一个字符}fclose(fp);putchar(10); //关闭文件return0; 向屏幕输出一个换行符}试验结果:10-2file1.dat文件中的file2.dat中。#include<stdio.h>#include<stdlib.h>intmain{FILE*in,*out; //FILEcharch,infile[10],outfile[10]; //定义两个字符数组,分别存放两个数据文件名printf(“输入读入文件的名字:“);scanf(“%s“,infile); //输入一个输入文件的名字printf(“输入输出文件的名字:“);scanf(“%s“,outfile); //输入一个输出文件的名字if((in=fopen(infile,“r“))==NULL) //翻开输入文件{printf(“无法翻开此文件\n“);exit(0);}if((out=fopen(outfile,“w“))==NULL) //翻开输出文件{printf(“无法翻开此文件\n“);exit(0);}while(!feof(in)) //假设未遇到输入文件的完毕标志{ch=fgetc(in); //chfputc(ch,out); //chputchar(ch); //ch}putchar(10); //显示完全部字符后换行fclose(in); //关闭输入文件fclose(out); //关闭输出文件return0;}试验结果:10-5#include<stdio.h>intmain{FILE*fp1,*fp2;fp2=fopen(“file2.dat“,“w“);putchar(getc(fp1));putchar(10);rewind(fp1);putc(getc(fp1),fp2);fclose(fp1);fclose(fp2);return0;}试验结果10-6#include<stdio.h>#include<stdlib.h>structstduent_type{charname[10];intnum;intage;charaddr[15];}stud[10];intmain{inti;FILE*fp;if((fp=fopen(“stu.dat“,“rb“))==NULL){printf(“cannotopenfile\n“);exit(0);}for(i=0;i<10;i+=2){fseek(fp,i*sizeof(structstduent_type),0);stduent_type),1,fp);printf(“%-10%4d%4d%-15\n“,stud[i].name,stud[i].num,stud[i].age,stud[i].addr);}fclose(fp);return0;}试验结果试验12-2〔1〕源代码:#include<stdio.h>structstudent{charnum[10];charname[8];intscore[3];floatave;}stu[5];intmain{inti,j,sum;FILE*fp;for(i=0;i<5;i++){printf(“\ninputscoreofstudent%d:\n“,i+1);printf(“NO.:“);scanf(“%s“,stu[i].num);printf(“name:“);scanf(“%s“,stu[i].name);sum=0;for(j=0;j<3;j++){printf(“score%d:“,j+1);scanf(“%d“,&stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/3.0;}//将数据写入文件fp=fopen(“stud“,“w“);for(i=0;i<5;i++)if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)printf(“filewriteerror\n“);fclose(fp);fp=fopen(“stud“,“r“);for(i=0;i<5;i++){fread(&stu[i],sizeof(structstudent),1,fp);printf(“\n%s,%s,%d,%d,%d,%6.2f\n“,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);}return0;}试验结果:inputscoreofstudent1:NO.:101name:Liscore1:90score2:89score3:88inputscoreofstudent2:NO.:120name:Wangscore1:80score2:79score3:78inputscoreofstudent3:NO.:130name:Chenscore1:70score2:69score3:68inputscoreNO.:140ofstudent4:name:Mascore1:100score2:99score3:98inputscoreofstudent5:NO.:150name:Weiscore1:60score2:59score3:58101,Li,90,89,88,89.00120,Wang,80,79,78,79.00130,Chen,70,69,68,69.00140,Ma,100,99,98,99.00150,Wei,60,59,58,59.00Pressanykeytocontinue试验目的:

试验12-2〔3〕已排序的学生成绩文件进展插入处理,插3门课成绩。程序先计算插入学生的平均成绩,的学生数据:10108 Xin 90,95,60试验内容:输入待插入的学生的数据输入待插入的学生的数据计算其平均分stu_sort文件从该文件读入数据并显示出来ttt个学生的数据并显示向文件输出待输入的学生数据并显示t后面的学生数据并显示关闭文件源代码:#include<stdio.h>#include<stdlib.h>structstudent{charnum[10];charname[8];intscore[3];floatave;}st[10],s;intmain{FILE*fp,*fp1;inti,j,t,n;scanf(“%s“,s.num);printf(“name:“);scanf(“%s“,);scanf(“%d,%d,%d“,&s.score[0],&s.score[1],&s.score[2]);s.ave=(s.score[0]+s.score[1]+s.score[2])/3.0;//从文件读数据if((fp=fopen(“stu_sort“,“r“))==NULL){printf(“cannotopenfile.“);exit(0);}printf(“originaldata:\n“);for(i=0;fread(&st[i],sizeof(structstudent),1,fp)!=0;i++){printf(“\n%8s%8s“,st[i].num,st[i].name);for(j=0;j<3;j++)printf(“%8d“,st[i].score[j]);printf(“%10.2f“,st[i].ave);}n=i;for(t=0;st[t].ave>s.ave&&t<n;t++);//向文件写数据printf(“\nNow:\n“);fp1=fopen(“sort1.dat“,“w“);for(i=0i<ti++){fwrite(&st[i],sizeof(structstudent),1,fp1);printf(“\n%8s%8s“,st[i].num,st[i].name);for(j=0;j<3;j++)printf(“%8d“,st[i].score[j]);printf(“%10.2f“,st[i].ave);}fwrite(&s,sizeof(structstudent),1,fp1);printf(“\n%8s%7s%7d%7d%7d%10.2f“,s.num,,s.score[0],s.score[1],s.score[2],s.ave);for(i=t;i<n;i++){fwrite(&st[i],sizeof(structstudent),1,fp1);printf(“\n%8s%8s“,st[i].num,st[i].name);for(j=0;j<3;j++)printf(“%8d“,st[i].score[j]);printf(“%10.2f“,st[i].ave

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论