登录界面以及隐藏输入的密码以*代替

#include 
#include 
#include     
#include    //  _getch()

using namespace std;  //表示 用这个名空间   但是一般大型的开发都有多个名空间,为了避免二义性,可以用using 声明4
                                                                                //using std::cin;
                                                                                //using std::endl;表示用这个名空间里已经定义的流对象,
                                                                                //using std::cout;
void loadPwd(char * ,int size);

int main(void)
{
    string QQ;
    char pwd[32];   
    load:   //goto 语法一般都是用于函数内
    while (1)
    {
        cout << "请输入QQ:" << endl;
        cin >> QQ;
        cout << "请输入密码:" << endl;
        try   //try代码块里写可能出现问题的代码
        {
            loadPwd(pwd, sizeof(pwd)>>2);    //位运算  >>1 表示缩小到原来的1/2(右移) 
        }                                    // <<1 表示缩小到原来的1/2(左移)
        catch(const char *n)//catch代码块里会给出相应的处理结果,这个const char *n参数是有throw传递过来的类型
        {
            cout << endl;
            cout << n << endl;
            Sleep(2000);
            system("cls");
            goto load;   //到达相应的代码部分 
        }
        cout << endl;
        if (QQ == "1296425482" && !strcmp(pwd,"1314")) //  c++中string类重载了==,>,<运算符 可以直接比较,第二个条件是c语言的字符串比较
        {
            cout << "输入正确" << endl;
            Sleep(1000);    //程序休眠   1000毫秒    Sleep(20)动画片是连续的图片组成的 通常动画片的用20ms, 人类眼球的频率20~50赫兹
                            //还有一个用法是但用while(1)等死循环时可以考虑加入这个休眠函数  以免你的处理器一直在运行,电脑风扇就响起来了 一般10ms就可以了 很短
            system("cls");  //清屏幕   也就是清除命令窗口的
            cout << "正在登录..." << endl;
            Sleep(1000);
            break;
        }
        else
        {
            cout << "请输入错误请重新输入!" << endl;
            Sleep(1000);
            system("cls");
        }
    }
    system("cls");
    for(int i = 1;i <= 5;i++)
    cout << "功能" << i < size)
    {
        throw "密码无效!可能已超过最大长度!请重新输入密码";//传递一个字符串给catch说明哪里出错
    }
}

 

你可能感兴趣的:(登录界面以及隐藏输入的密码以*代替)