; struct student *p2; struct student *head; int i = 0; FILE *fp; char file[20] = "d:/list/node.txt"; printf("\nFileName is: %s\n", file); if((fp=fopen(file, "r"))==NULL) { printf("Can not open file: %s", file); exit(0); } p2 = (struct student*)malloc(sizeof(*p1)); head = p2; p1 = (struct student*)malloc(sizeof(*p1)); while(fread(p1, sizeof(*p1), 1, fp)==1) { i++; p2->next = p1; p2 = p1; p1->next = NULL; p1 = (struct student*)malloc(sizeof(*p1)); } free(p1); fclose(fp); if(i==0) { printf("\nNo recored in %s ", file); } return head; } /* save the list result to file */ void savefile(struct student* head) { struct student *p1; FILE *fp; char file[20] = "d:/list/node.txt"; printf("\nFileName: %s", file); printf("\nPlease wait.../n"); if((fp=fopen(file,"w"))==NULL) { printf("\nCan not open file: %s", file); exit(0); } p1 = head->next; while(p1!=NULL) { fwrite(p1, sizeof(struct student), 1, fp); p1 = p1->next; } fclose(fp); } /* print the operate menu */ void showMenu() { printf("|-------------------------------------------------|\n"); printf("| Link List Opearte Menu |\n"); printf("|-------------------------------------------------|\n"); printf("| 1: Insert |\n"); printf("| 2: Delete |\n"); printf("| 3: Search |\n"); printf("| 4: FileIn |\n"); printf("| 5: Savefile |\n"); printf("| 6: Print List |\n"); printf("| 7: Print Menu |\n"); printf("| 8: Exit |\n"); printf("|-------------------------------------------------|\n"); } /* main funtion */ void main() { int a=0; struct student *la; la = create(); /* la = (struct student*)malloc(sizeof(struct student)); la->next = NULL; */ while(1) { showMenu(); scanf("\n%d", &a); switch(a) { case 1: insert(la); break; case 2: del(la); break; case 3: search(la); break; case 4: filein(); break; case 5: savefile(la); break; case 6: print(la); break; case 7: showMenu(); break; case 8: exit(1); default: printf("\nInput error,Try again.");break; } } }
作者“萧萧易水寒”
|