C语言 注册多个用户和登录多个用户,实现退出登录
时间: 2023-06-19 14:10:31 浏览: 70
实现注册多个用户和登录多个用户,可以使用结构体数组来存储用户的信息。结构体可以包含用户名和密码等信息,例如:
```
#define MAX_USERS 10
struct user {
char username[20];
char password[20];
int logged_in;
};
struct user users[MAX_USERS];
int num_users = 0;
```
在这个例子中,我们定义了一个结构体 `user`,它有三个成员:用户名 `username`、密码 `password` 和一个标志 `logged_in`,用于记录该用户是否已经登录。我们还定义了一个结构体数组 `users`,最大容量为 `MAX_USERS`,并且定义了一个变量 `num_users` 来记录当前有多少个用户。
接下来,我们可以编写注册用户的函数:
```
void register_user() {
if (num_users == MAX_USERS) {
printf("Sorry, the user database is full.\n");
return;
}
struct user new_user;
printf("Enter a new username: ");
scanf("%s", new_user.username);
printf("Enter a new password: ");
scanf("%s", new_user.password);
// Add the new user to the user database
users[num_users] = new_user;
num_users++;
printf("User %s registered successfully.\n", new_user.username);
}
```
该函数会提示用户输入新的用户名和密码,并将其添加到用户数据库中。
接下来,我们可以编写登录用户的函数:
```
void login_user() {
char username[20];
char password[20];
printf("Enter your username: ");
scanf("%s", username);
printf("Enter your password: ");
scanf("%s", password);
// Find the user in the user database
int i;
for (i = 0; i < num_users; i++) {
if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
users[i].logged_in = 1;
printf("Welcome, %s!\n", username);
return;
}
}
// User not found or password incorrect
printf("Invalid username or password.\n");
}
```
该函数会提示用户输入用户名和密码,并在用户数据库中查找对应的用户。如果找到了匹配的用户,则将其 `logged_in` 标志设置为 1,表示该用户已经登录。如果找不到匹配的用户,则向用户显示错误消息。
最后,我们可以编写退出登录的函数:
```
void logout_user() {
char username[20];
printf("Enter your username: ");
scanf("%s", username);
// Find the user in the user database
int i;
for (i = 0; i < num_users; i++) {
if (strcmp(users[i].username, username) == 0) {
users[i].logged_in = 0;
printf("User %s logged out.\n", username);
return;
}
}
// User not found
printf("User %s not found.\n", username);
}
```
该函数会提示用户输入用户名,并在用户数据库中查找对应的用户。如果找到了匹配的用户,则将其 `logged_in` 标志设置为 0,表示该用户已经退出登录。如果找不到匹配的用户,则向用户显示错误消息。
需要注意的是,这里只是提供了一个简单的例子,实际应用中需要更加严格地验证用户名和密码,以及保护用户数据的安全。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)