加点注释:

程序代码:
#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;
}测试一下,

程序代码:
/*  初始密码为 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;
}