c语言设计一个登录页面可以修改密码
时间: 2024-04-30 21:21:54 浏览: 64
下面是一个简单的 C 代码示例,用于创建一个登录页面并允许用户修改密码。该程序使用了文件存储用户的用户名和密码。
```c
#include <stdio.h>
#include <string.h>
#define MAX_USERNAME_LEN 20
#define MAX_PASSWORD_LEN 20
#define DATABASE_FILENAME "users.db"
typedef struct {
char username[MAX_USERNAME_LEN];
char password[MAX_PASSWORD_LEN];
} User;
int main() {
char username[MAX_USERNAME_LEN];
char password[MAX_PASSWORD_LEN];
char newPassword[MAX_PASSWORD_LEN];
printf("Welcome to the login page!\n");
// Ask for username and password
printf("Username: ");
scanf("%s", username);
printf("Password: ");
scanf("%s", password);
// Authenticate user
User user;
FILE* database = fopen(DATABASE_FILENAME, "rb");
while (fread(&user, sizeof(User), 1, database) == 1) {
if (strcmp(user.username, username) == 0 && strcmp(user.password, password) == 0) {
printf("Login successful!\n");
// Allow user to change password
printf("Enter new password: ");
scanf("%s", newPassword);
strncpy(user.password, newPassword, MAX_PASSWORD_LEN);
// Update user record in database
fseek(database, -sizeof(User), SEEK_CUR);
fwrite(&user, sizeof(User), 1, database);
printf("Password updated successfully!\n");
break;
}
}
// If we reach this point, user authentication failed
printf("Invalid username or password.\n");
fclose(database);
return 0;
}
```
在此示例中,我们使用了一个结构体 `User` 来存储每个用户的用户名和密码。我们将所有用户的信息存储在一个名为 `users.db` 的二进制文件中。程序要求用户输入用户名和密码,然后在数据库中查找匹配的用户记录。如果找到了匹配的记录,程序允许用户输入新密码,并更新用户记录。如果找不到匹配的记录,则显示错误消息。
请注意,此代码示例仅用于演示目的。在实际应用程序中,您需要实现更强大的身份验证和安全保护措施以确保用户数据的安全。
阅读全文