|
用C语言编通讯录程序(初学者级别的)(2) #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXL 120
typedef strUCt saddr { char *name; char *address; char *zip; char *phone; struct saddr *next, *pre; } ADDR;
char buffer[MAXL], fname[40]; FILE *fp; int modified = 0;
ADDR *load(); void insert(), make(), find(), del(), display(), show(), save(), freeall(), usage(); int getstr(FILE*, char **), getbuffer(FILE *);
int main(int argc, char **argv) { ADDR *head; char c; if (argc == 1) { printf("请输入通信录文件名. "); scanf("%s%*c", fname); } else{ strcpy(fname, *++argv); } head = load(fname); while (1) { printf("\n请输入命令: [i, f, d, s, q]\n"); while (getbuffer(stdin) == 0); if ((c = buffer[0]) == 'q') { if (modified) { printf("修改后的通信录未保存,要保存吗?(y/n) "); while (!(((c = getchar()) >= 'a' && c <= 'z') ¦¦ (c >= 'A' && c <= 'Z')))continue; if (c == 'y' ¦¦ c == 'Y') save(head, fname); } freeall(head); break; } switch © { case 'i' : insert(head); break; case 'f' : find(head); break; case 'd' : del(head); break; case 's' : show(head); break; default : usage(); break; } }//while (1)
|