c++控制台模拟输入密码出现*号

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#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;
}
相关文章
|
8月前
|
安全 算法 Java
|
8月前
|
C语言 C++ Windows
【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )(内含超好玩的c++游戏链接)
【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )(内含超好玩的c++游戏链接)
260 0
【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )(内含超好玩的c++游戏链接)
|
9月前
|
SpringCloudAlibaba 安全 算法
五.SpringCloudAlibaba极简入门-修改Nacos控制台密码
Nacos的控制台登录账号是nacos/nacos , 在生产环境中一定需要修改密码,不然一旦服务器地址泄露Nacos就会变得不安全,后果不堪设想。在上一章节我们做Nacos集群时我们基于MySql做了Nacos的数据持久化。在Nacos的数据库中有一个user表 , 这个表就是用来记录Nacos的控制台登录账号的,我们只需要修改表中的password 字段的 值即可。如下
|
11月前
|
C++
C++ 控制台窗口中MessageBox() 的用法
C++ 控制台窗口中MessageBox() 的用法
176 0
|
11月前
|
C++
C++ 设置控制台文本属性画一个DOS时代的字符窗口
C++ 设置控制台文本属性画一个DOS时代的字符窗口
57 0
|
API C语言 C++
C语言或者C++中隐藏控制台窗口
C语言或者C++中隐藏控制台窗口
408 0
|
存储 C++
C++异常处理机制由浅入深, 以及函数调用汇编过程底层刨析. C++11智能指针底层模拟实现
C++异常处理机制由浅入深, 以及函数调用汇编过程底层刨析. C++11智能指针底层模拟实现
C++异常处理机制由浅入深, 以及函数调用汇编过程底层刨析. C++11智能指针底层模拟实现
|
存储 Java 应用服务中间件
线程池设计, 从简单的我们平常设计线程池图解,到生活中的类似线程池的处理现实场景, 到简单的C++模拟nginx写的单链表组织工作队列的简单线程池实现 + nginx 部分源码刨析
线程池设计, 从简单的我们平常设计线程池图解,到生活中的类似线程池的处理现实场景, 到简单的C++模拟nginx写的单链表组织工作队列的简单线程池实现 + nginx 部分源码刨析
线程池设计, 从简单的我们平常设计线程池图解,到生活中的类似线程池的处理现实场景, 到简单的C++模拟nginx写的单链表组织工作队列的简单线程池实现 + nginx 部分源码刨析
|
算法 编译器 C语言
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(二)
在上一章中,我们讲解了STL的栈和队列,本章我们来模拟实现一下它们。在讲解优先级队列的同时我们顺便把上一章提到的仿函数进行一个讲解,使用仿函数可以有效替换使用难以理解的函数指针的场景。我们通过仿函数 less 和 greater 去控制优先级队列的 Compare,从而能同时适配升序和降序。
100 0
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(二)
|
存储 C++ 容器
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(一)
在上一章中,我们讲解了STL的栈和队列,本章我们来模拟实现一下它们。在讲解优先级队列的同时我们顺便把上一章提到的仿函数进行一个讲解,使用仿函数可以有效替换使用难以理解的函数指针的场景。我们通过仿函数 less 和 greater 去控制优先级队列的 Compare,从而能同时适配升序和降序。
111 0
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(一)

热门文章

最新文章