#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") ;
}
}
|