c_cpp 实验室405 2016年7月15日

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 实验室405 2016年7月15日相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <conio.h>
#include <string.h>

struct 
{
	char name[20],sex[20];
	char age[20];
}p;
char person[3][3][20]={{"Nara","male","20"},{"Bora","female","19"},{"Sokha","male","21"}};
int ch,ch1,n;
char nam[20];
FILE *fp,*tmp;
void main()
{
	ch=80;
	do{
		clrscr();
		puts("1-Generate into file");
		puts("2-Show file");
		puts("3-Delete info by name");
		ch1 = getch();
		switch(ch1)
		{
			case '1' :
				fp = fopen("Person.txt","wb");
				fwrite(&person,sizeof(person),1,fp);
				fclose(fp); 
				printf("%s\n", "Success!");getch();
				break;
			case '2' :
				fp = fopen("Person.txt","rb");
				do{
					clrscr();
					if(ch==80)fread(&p,sizeof(person)/3,1,fp);
					if(ch==72)
					{
						fseek(fp,-2*(sizeof(person)/3),SEEK_CUR);
						fread(&p,sizeof(person)/3,1,fp);
					}
					printf("%s%s\n", "Name: ",p.name);
					printf("%s%s\n", "Sex: ", p.sex);
					printf("%s%s\n", "Age: ",p.age);
					ch=getch();
				}while(ch!=27);
				fclose(fp);
				break;
			case '3' :
				printf("Enter Name: ");
				scanf("%s",nam);
				fp = fopen("Person.txt","rb+");
				rewind(fp);
				tmp = fopen("tmp.txt","wb+");
				while(fread(&p,sizeof(person)/3,1,fp)==1){
					
					if(strcmp(p.name,nam)!=0)
					{
						fseek(tmp,0,1);
						fwrite(&p,sizeof(p),1,tmp);
					}
				}
				fclose(fp);
				fclose(tmp);
				remove("Person.txt");
				rename("tmp.txt","Person.txt");
				getch();
				break;		}
	}while(ch1!=27);	
	
}

以上是关于c_cpp 实验室405 2016年7月15日的主要内容,如果未能解决你的问题,请参考以下文章

实验二

实验报告四

实验报告 三

实验报告 四

实验报告二

实验报告 二