[C] 纯文本查看 复制代码/*
2020年9月25日21:50:28
*/
#include
#include
#include
/*
包含头文件
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;
}