zoukankan      html  css  js  c++  java
  • c++控制台模拟输入密码出现*号

    #include <iostream>
    #include <conio.h>
    
    /**//**
     * 秘密在于conio.h中的getch()从键盘中读取字符时,并不会在屏幕上输出已经输入的字符,
     * 而用一个putch('*')来哄骗,代表已经输入一个字符
     * 怪不得这个头文件要叫conio.h, con的意思就有哄骗,看来就是由此而来.
     */
    
    using namespace std;
    
    int main() {
            char* password;
            char* passwordConfirm;
    
            int length = 4;
            password = new char[length + 1];
            passwordConfirm = new char[length + 1];
    
            char* p = NULL;
            int count = 0;
    
            cout << "Input password : ";
            p = password;
            count = 0;
            //fflush(stdin);
            while (((*p = getch()) != 13) && count < length) {
                    // 这里不是'\n'(10), new line
                    // 而是'\r'(13), reback. 即是按下回车键,好像这个东西是linux的.
                    // 主要是与getch这个函数有关.
                    putch('*');
                    fflush(stdin);
    
                    p++;
                    count++;
            }
            password[count] = '\0';
    
            cout << endl << "Confirm the password : ";
            p = passwordConfirm;
            count = 0;
            //fflush(stdin);
            while (((*p = getch()) != 13) && count < length) {
                    putch('*');
                    fflush(stdin);
    
                    p++;
                    count++;
            }
            passwordConfirm[count] = '\0';
    
            cout << endl;
            if (strcmp(password, passwordConfirm) == 0) {
                    cout << "The password is right." << endl;
                    cout << password << endl;
            } else {
                    cout << "Confirm password fail." << endl;
                    cout << password << endl << passwordConfirm << endl;
            }
    
            return 0;
    }
    
    
  • 相关阅读:
    python threading 无法并行问题
    flask
    jinjia2 模板不解析html
    docker 配置lnmp环境(mac环境下)
    docker基础
    django初体验
    Centos6.5 编译安装Mysql 5.5.3.7
    Mysql InnoDB事务
    删除GitHub上项目中的某个文件
    转 WPF MVVM 循序渐进 (从基础到高级)
  • 原文地址:https://www.cnblogs.com/zhangdongsheng/p/1866766.html
Copyright © 2011-2022 走看看