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;
}
|