cmd实现 模拟用户登录功能(掩码版)
使用工具:VS2019
功能:
1、用户输入用户名和密码
2、用户名和密码匹配
要求:
1、输入密码时要实现掩码功能(输入123,显示***)
2、具备删除键能够删除的功能
一、代码部分
函数实现:
//密码隐藏的实现
void hiddenPassword(char* str)
{
int i = 0;
while (1)
{
char ch = _getch(); //_getch读取一个字符,但不显示
if (ch == '\r') //读取到回车,代表输入完成,加上'\0'
{
str[i] = '\0';
break;
}
else if (ch == '\b') //读取到退格,将*删除一个,并将光标前移
{
i--; //删除一个字符
if (i < 0)
i = 0;
printf("\b \b"); //\b :删除一个*,\b:光标前移
}
else //正常输入字符
{
str[i] = ch;
++i;
printf("*"); //掩码
}
}
}
主函数调用:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
//密码隐藏的实现
void hiddenPassword(char* str);
int main()
{
char USERNAME[10] = { "CSDN" }; //初始用户名
char PASSWORD[10] = { "123456" }; //初始密码
char username[10] = { "" }; //用户输入的用户名
char password[10] = { "" }; //用户输入的密码
printf("请输入用户名和密码\n\n");
//用户名部分
printf("请输入用户名:\n");
while (1)
{
//输入用户名
gets_s(username, sizeof(username) / sizeof(username[0]));
//字符串比较,两个字符串相同,则返回0
if (strcmp(USERNAME, username) == 0)
{
printf("用户名正确!\n\n");
break;
}
else
printf("用户名输入错误!请重新输入:\n");
}
//密码部分
printf("请输入密码:\n");
while (1)
{
//密码隐藏的实现
hiddenPassword(password);
//字符串比较,两个字符串相同,则返回0
if (strcmp(PASSWORD, password) == 0)
{
printf("\n密码正确!\n\n");
break;
}
else
printf("\n密码输入错误!请重新输入:\n");
}
system("pause");
return 0;
}
二、运行结果
默认用户名:CSDN
默认密码:123456