好友
阅读权限10
听众
最后登录1970-1-1
|
C语言学习之控制台密码输入
自己写的一个控制台输入密码函数,可以隐藏,并且可以显示,在隐藏 新人 学习C语言
源码奉上
[C] 纯文本查看 复制代码 /*
2020年9月25日21:50:28
*/
#include <stdio.h>
#include <conio.h>
#include <windows.h>
/*
包含头文件
stdio.h
conio.h
windows.h
密码输入:
英文、数字
len_pd 密码长度 (字符数组的长度)
str 字符数组指针
例子:
char password[17];
Input_pd(17, password);
输入一个长度最大为16个字符的密码 其中最后空间用于保存\0
超过最大长度后自动退出
*/
void Input_pd(int len_pd, char* str);
int main(void)
{
char password[17];
Input_pd(17, password);
printf("\n你输入的密码为:%s\n", password);
return 0;
}
void Input_pd(int len_pd, char* str)
{
char* password;
int n_input_pd = 0;
len_pd -= 1;
password = str;
while (n_input_pd < len_pd)
{
password[n_input_pd] = _getch();
/*
自行添加
if(输入验证)
{
return -1;
}
*/
if (password[n_input_pd] == '\r')
{
break;
}
//删除功能 循环判断是否 连续删除
while (password[n_input_pd] == '\b')
{
putchar('\b');
putchar(' ');
putchar('\b');
if (n_input_pd) //判断是否减到0 如果是0 则不继续减少下标
--n_input_pd;
password[n_input_pd] = _getch(); //获取下一次的输入
/*
自行添加
if(输入验证)
{
return -1;
}
*/
if (password[n_input_pd] == '\r')
{
goto end;
}
}
//回显
putchar(password[n_input_pd]);
//退格 打印*
putchar('\b');
Sleep(150);
putchar('*');
++n_input_pd;
}
end:
password[n_input_pd] = '\0'; //添加结束标记
return;
}
效果
哈哈,可不可以给点cb 穷的叮当响了 |
免费评分
-
参与人数 4 | 吾爱币 +5 |
热心值 +2 |
收起
理由
|
兰笙c
| + 1 |
|
我很赞同! |
双鱼兔
| + 1 |
|
我草 你这是真的穷啊,我都忍不住给你搞一个 |
苏紫方璇
| + 2 |
+ 1 |
感谢发布原创作品,吾爱破解论坛因你更精彩! |
女萝岩
| + 1 |
+ 1 |
我很赞同! |
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|