登录模块算法实现c语言
时间: 2023-08-13 13:05:02 浏览: 28
登录模块通常需要与数据库或其他存储方式交互,所以需要在实现登录模块时考虑到数据的存储和读取。以下是一个简单的基于文件存储的登录模块的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_USERNAME_LEN 20
#define MAX_PASSWORD_LEN 20
typedef struct {
char username[MAX_USERNAME_LEN + 1];
char password[MAX_PASSWORD_LEN + 1];
} User;
// 从文件中读取用户信息
void read_users(User *users, int *num_users) {
FILE *fp;
fp = fopen("users.txt", "r");
if (fp == NULL) {
printf("文件打开失败\n");
return;
}
*num_users = 0;
while (fscanf(fp, "%s %s", users[*num_users].username, users[*num_users].password) == 2) {
(*num_users)++;
}
fclose(fp);
}
// 检查用户名和密码是否匹配
int check_user(User *users, int num_users, char *username, char *password) {
for (int i = 0; i < num_users; i++) {
if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
return 1;
}
}
return 0;
}
int main() {
User users[100];
int num_users;
read_users(users, &num_users);
char username[MAX_USERNAME_LEN + 1];
char password[MAX_PASSWORD_LEN + 1];
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
if (check_user(users, num_users, username, password)) {
printf("登录成功!\n");
} else {
printf("用户名或密码错误!\n");
}
return 0;
}
```
以上代码中,我们定义了一个 `User` 结构体来存储每个用户的用户名和密码。`read_users` 函数从文件中读取用户信息,并将读取到的用户信息存储到 `users` 数组中。`check_user` 函数用于检查输入的用户名和密码是否与存储的用户信息匹配。在 `main` 函数中,我们首先调用 `read_users` 函数读取用户信息,然后通过 `scanf` 函数获取用户输入的用户名和密码,并通过 `check_user` 函数检查用户名和密码是否匹配。如果匹配则输出登录成功,否则输出用户名或密码错误。