C语言模拟密码输入
使用_getch()函数实现密码的隐私输入
getch()是windows的conio.h中的一个库函数,用于读取键盘输入的数据。
函数特点
getch() 函数没有缓冲区,在键盘输入一个字符后会立即读取,不需要等待回车键按下。getch() 的特别之处是它没有回显,用户看不到输入的字符。
使用getch() 函数实现密码输入
目标:
模拟密码输入,用*回显;
约束密码位数,设置为10-16位;
能够使用删除键删除错误输入。
代码如下:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int getPassword(char *pwd);
int main() {
char password[17] = {0};
printf("请输入10-16位密码: ");
int result = 0;
while(result != getPassword(password));
printf("密码: %s\n", password);
return 0;
}
/**
* 获取用户输入的密码
* @param pwd char* 保存密码的内存的首地址
**/
int getPassword(char *pwd) {
char ch = 0;
int i = 0;
while (i < 17) {
ch = _getch();
if (ch == '\b' && i > 0) { //删