我想自己用c++写一个简易的密码管理器
时间: 2024-05-08 15:17:31 浏览: 8
好的,以下是一个简单的密码管理器的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 50
// 结构体定义
typedef struct {
char name[MAX_LEN];
char password[MAX_LEN];
} Account;
// 函数声明
void add_account(Account *accounts, int *num_accounts);
void find_account(Account *accounts, int num_accounts);
void print_accounts(Account *accounts, int num_accounts);
int main() {
Account accounts[100]; // 最多可以保存100个账户
int num_accounts = 0;
int choice;
while (1) {
// 打印菜单
printf("\n1. 添加账户\n");
printf("2. 查找账户\n");
printf("3. 显示所有账户\n");
printf("4. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
fflush(stdin);
// 根据用户选择执行操作
switch (choice) {
case 1:
add_account(accounts, &num_accounts);
break;
case 2:
find_account(accounts, num_accounts);
break;
case 3:
print_accounts(accounts, num_accounts);
break;
case 4:
exit(0);
default:
printf("无效的选择,请重新输入\n");
}
}
return 0;
}
// 添加账户
void add_account(Account *accounts, int *num_accounts) {
printf("\n请输入账户名:");
fgets(accounts[*num_accounts].name, MAX_LEN, stdin);
printf("请输入密码:");
fgets(accounts[*num_accounts].password, MAX_LEN, stdin);
(*num_accounts)++;
printf("账户已添加\n");
}
// 查找账户
void find_account(Account *accounts, int num_accounts) {
char name[MAX_LEN];
printf("\n请输入要查找的账户名:");
fgets(name, MAX_LEN, stdin);
int found = 0;
for (int i = 0; i < num_accounts; i++) {
if (strcmp(accounts[i].name, name) == 0) {
printf("密码为:%s", accounts[i].password);
found = 1;
break;
}
}
if (!found) {
printf("未找到该账户\n");
}
}
// 显示所有账户
void print_accounts(Account *accounts, int num_accounts) {
printf("\n所有账户:\n");
for (int i = 0; i < num_accounts; i++) {
printf("%s:%s", accounts[i].name, accounts[i].password);
}
}
```
这个密码管理器可以实现添加账户、查找账户和显示所有账户的功能。每个账户由一个用户名和一个密码组成,最多可以保存100个账户。注意,在输入字符串时,需要使用fgets函数,而不是scanf函数,以避免缓冲区溢出的问题。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)