写了几个c++的项目,有些时候会需要设置一些管理员或者用户的登录,这时候密码应该是隐藏的,今天就给大家分享一下,如何隐藏的输入密码,话不多说,马上贴上代码:
void inputPassword(string &str, int len) {
char ch;
int _len = 0;
char *password = new char[len];
while((ch = getch()) != '\r') {
if(ch == len) {
if(_len == 0) {
continue;
}
cout << "\b";
cout << " " << "\b";
_len--;
}
else if(_len == len-1) {
continue;
} else {
cout << '*';
password[_len] = ch;
_len++;
}
}
password[_len] = '\0';
str = password;
delete []password;
cout << endl;
}
bool changePassword() {
ifstream in;
in.open("password.txt");
string oldPassword, checkPassword, newPassword, checkNewPassword;
cout << "请输入原密码: ";
inputPassword(checkPassword, 8);
in >> oldPassword;
in.close();
if(oldPassword == checkPassword) {
cout << "请输入新密码: ";
inputPassword(newPassword, 8);
cout << "请再次输入新密码: ";
inputPassword(checkNewPassword, 8);
if(newPassword == checkNewPassword) {
ofstream out;
out.open("password.txt");
out << newPassword;
return true;
} else {
cout << "两次密码不一致,修改失败!" << endl;
return false;
}
} else {
cout << "密码错误!" << endl;
return false;
}
}
有错误请指正[^footnote].