设置软件密码,防止他人使用
软件发布后,如果不希望未经授权的用户使用,可以设置软件密码,启动软件后,必须正确输入密码才能进行后续操作。
作为教学演示,这里简单地将密码赋值给一个变量,编译后不能更改,如果想更改,必须重新编译。
用户有3次输入密码的机会,3次输入错误,软件自动退出。通过for循环,连续3次读取用户输入的密码,并与初始密码进行比较,相同则校验通过,否则校验失败。
请看下面的代码:

作为教学演示,这里简单地将密码赋值给一个变量,编译后不能更改,如果想更改,必须重新编译。
用户有3次输入密码的机会,3次输入错误,软件自动退出。通过for循环,连续3次读取用户输入的密码,并与初始密码进行比较,相同则校验通过,否则校验失败。
请看下面的代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int checkPwd();
void myExit(char *msg);
int password=123456; // 软件初始密码
int main(){
if(!checkPwd()){
myExit("抱歉,3次输入密码错误。按任意键退出程序...\n");
}
myExit("恭喜你,密码检验成功。按任意键退出程序...\n");
return 0;
}
// 校验密码
// 返回 0 表示校验失败,返回 1 表示校验成功
int checkPwd(){
int pwd; //用户输入的密码
int trytimes; // 用户尝试输入密码的次数
printf("程序设置了密码,验证通过后才能使用。请输入6位数字密码:");
// 可以输入三次
for(trytimes=1; trytimes<=3; trytimes++){
scanf("%d",&pwd);
fflush(stdin);
if(pwd==password){
return 1;
break;
}else if(trytimes==3){
return 0;
}else{
printf("抱歉,密码错误,您还有%d次机会:", 3-trytimes);
}
}
}
// 自定义退出程序函数
// msg 为提示语
void myExit(char *msg){
printf("%s", msg);
getch();
exit(1);
}
运行结果:
