#include <iostream>
#include <fstream>
#include <string>
#include <map>
void addPassword(std::map<std::string, std::string>& passwords) {
std::string account, password;
std::cout << "Enter account name: ";
std::cin.ignore();
std::getline(std::cin, account);
std::cout << "Enter password: ";
std::getline(std::cin, password);
passwords[account] = password;
std::cout << "Password added successfully.\n";
}
void viewPasswords(const std::map<std::string, std::string>& passwords) {
if (passwords.empty()) {
std::cout << "No passwords stored.\n";
return;
}
std::cout << "Stored passwords:\n";
for (const auto& entry : passwords) {
std::cout << "Account: " << entry.first << " | Password: " << entry.second << '\n';
}
}
void savePasswords(const std::map<std::string, std::string>& passwords) {
std::ofstream file("passwords.txt");
if (!file) {
std::cerr << "Error opening file for writing.\n";
return;
}
for (const auto& entry : passwords) {
file << entry.first << '\n' << entry.second << '\n';
}
file.close();
std::cout << "Passwords saved successfully.\n";
}
void loadPasswords(std::map<std::string, std::string>& passwords) {
std::ifstream file("passwords.txt");
if (!file) {
std::cerr << "Error opening file for reading.\n";
return;
}
std::string account, password;
while (std::getline(file, account) && std::getline(file, password)) {
passwords[account] = password;
}
file.close();
}
int main() {
std::map<std::string, std::string> passwords;
loadPasswords(passwords);
int choice;
while (true) {
std::cout << "Password Manager\n";
std::cout << "1. Add Password\n";
std::cout << "2. View Passwords\n";
std::cout << "3. Save and Exit\n";
std::cout << "Enter your choice: ";
std::cin >> choice;
switch (choice) {
case 1:
addPassword(passwords);
break;
case 2:
viewPasswords(passwords);
break;
case 3:
savePasswords(passwords);
return 0;
default:
std::cout << "Invalid choice. Please try again.\n";
}
}
return 0;
}