C语言模拟账户登录程序

密码显星号模拟登录程序

可能没有成绩管理里的简洁

Vs2019可运行

vc++6.0简单修改
注释很详细
简单运行一下

/* 获取字符_getch()函数,但是不在控制台打印出来,/b/r都能被获取且不产生任何效果*/
#include <stdio.h>
#include <conio.h>
void login_check(char mm[]);
int strcmp1(char* pr, char* qw);
void main()
{
	int flag;
	char user[100];//开辟足够连续空间
	char mm[20] = {"6981092"};//设置正确密码
	login_check(user);//通过指针把用户的密码传进user
	flag = strcmp1(user, mm);
	if (flag == 0)
	{
		printf("输入正确\n");
	}
	else printf("输入错误\n");
	printf("mm:%s\nname:%s\n",mm,user);
}

void login_check(char mm[])
{
	int i = 0,fl=0;
	char input;
	while (1)
	{
		if ((input = _getch()) != '\r')//检测是否enter即登录
		{
			if (input != '\b')//是否想要删除
			{
				*(mm + i++) = input;
				printf("*");//模拟真实密码输入环境
				fflush(stdin);//清空缓冲区
				fl++;
			}
			if (input == '\b' && fl != 0)
			{
				fl--;
				i--;
				printf("\b \b");//退格覆盖退格
			}
		}
		else
		{
			*(mm + i) = '\0';//附结束标志附
			fflush(stdin);
			printf("\n");
			return;
		}
	}
}
int strcmp1(char* pr, char* qw)//自己写的字符串校验函数,不如库函数
{
	int i = 0;
	while ((*(pr + i) == *(qw + i)) && (*(pr + i) != '\0') && (*(qw + i) != '\0'))
	{
		i++;
	}
	if (*(pr + i) > *(qw + i))
		return 1;
	if (*(pr + i) < *(qw + i))
		return -1;
	else return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值