资源描述:
《源代码知识讲解.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、__________________________________________________#include#include#includetypedefstructpnode//结构体定义用于存放学生信息的节点{charname[8];//姓名charxh[16];//学号charfh[30];//房号}personnode;charfilename[50];//文件名FILE*fp;//指向文件的指针voidcreat()//创建新数据文件的函数创建一个二进制文件用于存放学生数据{personnode*pe
2、rson;person=(personnode*)malloc(sizeof(personnode));//为节点分配内存printf("请输入文件名:");scanf("%s",filename);if((fp=fopen(filename,"w+"))==NULL)____________________________________________________________________________________________________{printf("你没有输入文件名,不能找到文件夹");exit(0);}printf("请输入
3、姓名,学号(相同的长度)和房号,以空格隔开,以#结束");scanf("%s",person->name);while(strcmp(person->name,"#"))//该循环用于控制学生信息的录入当输入#时学生信息录入完毕{scanf("%s%s",person->xh,person->fh);fprintf(fp,"%-10s%-20s%-50s",person->name,person->xh,person->fh);scanf("%s",person->name);}fclose(fp);}voidreadfile()//文件读取函数用于打开已有的二进制数
4、据文件____________________________________________________________________________________________________{printf("pleaseenterthefileroad:");scanf("%s",filename);//此处输入为文件的路径如c:zhangif((fp=fopen(filename,"r+"))==NULL){printf("can'topenthefile:");exit(0);}fclose(fp);}voidoutput()//输出函数
5、用于输出文件的全部信息{personnode*person;longoffset1,offset2;charname1[8],name2[8],name3[8];charxh1[16],xh2[16],xh3[16];charfh1[30],fh2[30],fh3[30];person=(personnode*)malloc(sizeof(personnode));if((fp=fopen(filename,"r"))==NULL){________________________________________________________________________
6、____________________________printf("can'topenthefile");exit(0);}while(!feof(fp))//此循环用于对文件数据中关键字学号进行从小到大冒泡排序{inta,b,c,d;//a为循环结束判定变量b,c,d用于起泡排序时学号交换的替换if((fp=fopen(filename,"r+"))==NULL){printf("can'topenthefile");exit(0);}while(!feof(fp))//从文件头开始遍历{while(!feof(fp))//对两组数据进行排序{offset1=f
7、tell(fp);//获取文件内部当前指针位置____________________________________________________________________________________________________fscanf(fp,"%s%s%s",person->name,person->xh,person->fh);strcpy(name1,person->name);strcpy(xh1,person->xh);strcpy(fh1,person->fh);i