加点注释:
![](zzz/editor/img/code.gif)
程序代码:
#include<iostream>
#include<string>
#include<conio.h>
using namespace std;
int main()
{
char c;
string str;
while((c=getch())!=13)
{
if(c!=8) // 如果按下的不是Backspace(Backspace即退格键的ASCII码为8),则输出一个*,并保存该字符。
{
cout<<"*";
str+=c;
}
else if(!str.empty()) // 这里是判断储存输入的字符串str是不是为空,如果是空的话,按下Backspace就不用做任何操作了
{
str.erase(str.end()-1); // 如果按下的为退格键,刚删除储存的密码中的最后一个字符,
cout<<"\b"<<" "<<"\b"; // 让显示的 * 号与密码个数保持一致。
}
}
cout<<endl<<str<<endl;
return 0;
}
测试一下,
![](zzz/editor/img/code.gif)
程序代码:
/* 初始密码为 12345678
* 输入密码时用*保护输入的字符
* 支持退格键 Backspace
* 此程序要输入正确代码才能正常能出
* 控制台做课程设计时需要账号密码可以参考,密码可以放在某文件内(不加数据库的话),然后自己定一个规则进行加密即可。
*/
#include<iostream>
#include<string>
#include<conio.h>
using namespace std;
int main()
{
char c;
string str;
string code = "12345678";
while(true)
{
str = "";
while((c=getch())!=13)
{
if(c!=8)
{
cout<<"*";
str+=c;
}
else if(!str.empty())
{
str.erase(str.end()-1);
cout<<"\b"<<" "<<"\b";
}
}
if (str == code)
{
cout<< endl <<"你输入的密码为:" << str <<endl;
cout <<endl << "恭喜你,密码正确。可以正常退出!" << endl;
return 0;
}
else
{
cout<< endl <<"你输入的密码为:" << str <<endl;
cout <<endl <<"不好意思,密码错误,请再次输入:" << endl;
}
}
return 0;
}