|
发表于 2021-1-21 23:30:29
|
显示全部楼层
- #include<stdio.h>
- #include<string.h>
- #define M 100
- struct denglu
- {
- char name[10] ;
- char mima[10] ;
- } person[M] ;
- int main()
- {
- FILE * fp ;
- int k , m = 0 , i ;
- char s , name[10] , mima[10] ;
- if((fp = fopen("D:\\log.bin","rb")) != NULL) {
- fread(& person[m] , sizeof(struct denglu) , 1 , fp) ;
- while(! feof(fp)) {
- m ++ ;
- fread(& person[m] , sizeof(struct denglu) , 1 , fp) ;
- }
- fclose(fp) ;
- }
- printf("当前在册用户数为 %d \n" , m) ;
- if(m < M) {
- printf("输入用户名 : ") ;
- scanf("%s" , name) ;
- for(i = 0 ; i < m ; i ++) if(! strcmp(name , person[i] . name)) break ;
- k = m ;
- if(i == m) {
- printf("用户不存在!\n") ;
- printf("现在创建(y / n) ? : ") ;
- } else {
- printf("用户已经存在。\n") ;
- printf("更新密码(y / n) ? : ") ;
- }
- fflush(stdin) ;
- s = getchar() ;
- if(s == 'Y' || s == 'y') {
- printf("输入密码 : ") ;
- scanf("%s" , mima) ;
- strcpy(person[i] . name , name) ;
- strcpy(person[i] . mima , mima) ;
- if(i == m) m ++ ;
- if((fp = fopen("D:\\log.bin","wb")) != NULL) {
- fwrite(person , sizeof(struct denglu) , m , fp) ;
- fclose(fp) ;
- if(i == k) printf("用户创建成功。") ;
- else printf("密码修改成功。") ;
- } else {
- fprintf(stderr , "\n") ;
- fprintf(stderr , "用户数据文件无法创建。\n") ;
- fprintf(stderr , "\n") ;
- }
- }
- } else {
- printf("\n") ;
- printf("用户数已满。\n") ;
- printf("\n") ;
- }
- }
复制代码 |
|