📄 login.c
字号:
/* file_name: login.c
* author: wangtiezhen miuliang @ Xidian University
* description:
*/
#include<string.h>
/* login */
struct user{
int id;
char name[20];
enum {teacher, student} type;
}user;
static struct user* login_as_teacher(char*, char*);
static struct user* login_as_student(char*, char*);
extern struct user* login(void);
static void login_get_input_name(char*, char*);
void login_get_input_name(char c[],char d[]){
scanf("%s%s", c, d);
return;
}
struct user* login(void)
{
char *input_name = (char*) malloc(sizeof(char) * 20);
char *input_password = (char*) malloc(sizeof(char) * 20);
login_get_input_name(input_name, input_password);
struct user* result = NULL;
result = login_as_teacher(input_name, input_password);
if(result != NULL){
// putchar('2');
free(input_name);
return result;
}
result = login_as_student(input_name, input_password);
free(input_name);
return result;
}
struct user* login_as_teacher(char *input_name, char *input_password){
FILE *fp;
if((fp = fopen("teacher", "r")) == NULL){
printf("Unknown file.\n");
return NULL;
}
char name[20], password[20];
int id;
enum {success, fail} flag = fail;
while((fscanf(fp, "%d%s%s", &id, name, password)) == 3){
// printf("%s\t%s\n",name ,input_name);
if(!strcmp(name, input_name)){
if(!strcmp(password, input_password)){
flag = success;
break;
}else{
fclose(fp);
return NULL;
}
}
}
fclose(fp);
if(flag == success){
user.id = id;
strcpy(user.name, name);
user.type = teacher;
return &user;
}else{
return NULL;
}
}
/* login by stu */
extern struct stu* find_stu_name(struct stu* , char* );
struct user* login_as_student(char *input_name, char *input_password)
{
// putchar('w');
struct stu* src = find_stu_name(stubt, input_name);
if(src == NULL){
// printf("this student name isn't found.\n");
return NULL;
}
char c[20];
itoa(src->password, c, 10);
// printf("atoi: %s\n",c);
// putchar('d');
if(!strcmp(c, input_password)){
user.id = src->num;
strcpy(user.name, src->name);
user.type = student;
return &user;
}else{
return NULL;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -